public bool TryPrintConstant(object value, IndentedStringBuilder stringBuilder) { var trackingInfoList = value as List<EntityTrackingInfo>; if (trackingInfoList != null) { var appendAction = trackingInfoList.Count() > 2 ? AppendLine : Append; appendAction(stringBuilder, "{ "); stringBuilder.IncrementIndent(); for (var i = 0; i < trackingInfoList.Count; i++) { var entityTrackingInfo = trackingInfoList[i]; var separator = i == trackingInfoList.Count - 1 ? " " : ", "; stringBuilder.Append("itemType: " + entityTrackingInfo.QuerySource.ItemType.Name); appendAction(stringBuilder, separator); } stringBuilder.DecrementIndent(); appendAction(stringBuilder, "}"); return true; } return false; }
public bool TryPrintConstant(object value, IndentedStringBuilder stringBuilder) { var commandBuilder = value as CommandBuilder; if (commandBuilder != null) { stringBuilder.AppendLine("SelectExpression: "); stringBuilder.IncrementIndent(); var sqlGenerator = commandBuilder.SqlGeneratorFactory(); var defaultQuerySqlGenerator = sqlGenerator as DefaultQuerySqlGenerator; var selectExpression = defaultQuerySqlGenerator != null ? defaultQuerySqlGenerator.SelectExpression : ((RawSqlQueryGenerator)sqlGenerator).SelectExpression; var sql = selectExpression.ToString(); var lines = sql.Split(new[] { Environment.NewLine }, StringSplitOptions.None); foreach (var line in lines) { stringBuilder.AppendLine(line); } stringBuilder.DecrementIndent(); return true; } return false; }
public virtual SqlBatchBuilder EndBatch() { var sql = _stringBuilder.ToString(); var sqlBatch = new SqlBatch(sql); sqlBatch.SuppressTransaction = _transactionSuppressed; if (!string.IsNullOrEmpty(sql)) { _batches.Add(sqlBatch); } _stringBuilder = new IndentedStringBuilder(); return this; }
public bool TryPrintConstant(object value, IndentedStringBuilder stringBuilder) { var properties = value as IEnumerable<IPropertyBase>; if (properties != null) { var appendAction = properties.Count() > 2 ? AppendLine : Append; appendAction(stringBuilder, value.GetType().DisplayName(fullName: false) + " "); appendAction(stringBuilder, "{ "); stringBuilder.IncrementIndent(); foreach (var property in properties) { appendAction(stringBuilder, property.DeclaringEntityType.ClrType.Name + "." + property.Name + ", "); } stringBuilder.DecrementIndent(); stringBuilder.Append("}"); return true; } return false; }
public bool TryPrintConstant(object value, IndentedStringBuilder stringBuilder) { var commandBuilder = value as CommandBuilder; if (commandBuilder != null) { stringBuilder.AppendLine("SelectExpression: "); stringBuilder.IncrementIndent(); var commandGenerator = commandBuilder.SqlGeneratorFunc(); var sql = commandGenerator.GenerateSql(new Dictionary<string, object>()).CommandText; var lines = sql.Split(new[] { Environment.NewLine }, StringSplitOptions.None); foreach (var line in lines) { stringBuilder.AppendLine(line); } stringBuilder.DecrementIndent(); return true; } return false; }
private void Test(Action<ModelBuilder> buildModel, string expectedCode, Action<IModel> assert) { var modelBuilder = TestHelpers.Instance.CreateConventionBuilder(); buildModel(modelBuilder); var model = modelBuilder.Model; var generator = new CSharpSnapshotGenerator(new CSharpHelper()); var builder = new IndentedStringBuilder(); generator.Generate("builder", model, builder); var code = builder.ToString(); Assert.Equal(expectedCode, code); var build = new BuildSource { References = { #if !DNXCORE50 BuildReference.ByName("System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"), BuildReference.ByName("System.Linq.Expressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), BuildReference.ByName("System.Runtime, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), #endif BuildReference.ByName("EntityFramework.Core"), BuildReference.ByName("EntityFramework.Relational") }, Sources = { @" using Microsoft.Data.Entity; using Microsoft.Data.Entity.Metadata; using Microsoft.Data.Entity.Metadata.Conventions; public static class ModelSnapshot { public static IModel Model { get { var builder = new ModelBuilder(new ConventionSet()); " + code + @" return builder.Model; } } } " } }; var assembly = build.BuildInMemory(); var factoryType = assembly.GetType("ModelSnapshot"); var property = factoryType.GetTypeInfo().GetDeclaredProperty("Model"); var value = (IModel)property.GetValue(null); Assert.NotNull(value); assert(value); }
public Indenter(IndentedStringBuilder stringBuilder) { _stringBuilder = stringBuilder; _stringBuilder.IncrementIndent(); }