public virtual string Create(bool ifNotExists) { var builder = new IndentedStringBuilder(); if (ifNotExists) { builder.AppendLine("IF NOT EXISTS(SELECT * FROM [INFORMATION_SCHEMA].[TABLES] WHERE[TABLE_SCHEMA] = N'dbo' AND[TABLE_NAME] = '" + MigrationHistoryTableName + "' AND[TABLE_TYPE] = 'BASE TABLE')"); builder.IncrementIndent(); } builder .AppendLine("CREATE TABLE [dbo].[" + MigrationHistoryTableName + "] ("); using (builder.Indent()) { builder .AppendLine("[MigrationId] nvarchar(150) NOT NULL,") .AppendLine("[ContextKey] nvarchar(300) NOT NULL,") .AppendLine("[ProductVersion] nvarchar(32) NOT NULL,") .AppendLine("CONSTRAINT [PK_MigrationHistory] PRIMARY KEY ([MigrationId], [ContextKey])"); } builder.Append(");"); return builder.ToString(); }
public Indenter(IndentedStringBuilder stringBuilder) { _stringBuilder = stringBuilder; _stringBuilder.IncrementIndent(); }
public Indenter(IndentedStringBuilder stringBuilder) { _stringBuilder = stringBuilder; _stringBuilder.IncrementIndent(); }
public virtual void GenerateOnModelCreatingCode([NotNull] IndentedStringBuilder sb) { Check.NotNull(sb, nameof(sb)); Generator.CSharpCodeGeneratorHelper.BeginMethod(AccessModifier.Protected, VirtualModifier.Override, "void", "OnModelCreating", sb, _onModelCreatingMethodParameters); var first = true; foreach (var entityType in OrderedEntityTypes()) { if (first) { first = false; } else { sb.AppendLine(); } sb.Append("modelBuilder.Entity<"); sb.Append(entityType.Name); sb.AppendLine(">(entity =>"); GenerateEntityKeyAndPropertyConfiguration(entityType, sb); sb.AppendLine(");"); } foreach (var entityType in OrderedEntityTypes()) { var navigationsStringBuilder = new IndentedStringBuilder(sb); navigationsStringBuilder.IncrementIndent(); GenerateNavigationsConfiguration(entityType, navigationsStringBuilder); var navigationsCode = navigationsStringBuilder.ToString(); if (!string.IsNullOrEmpty(navigationsCode)) { sb.AppendLine(); sb.Append("modelBuilder.Entity<"); sb.Append(entityType.Name); sb.AppendLine(">(entity =>"); sb.AppendLine("{"); sb.DecrementIndent().DecrementIndent().DecrementIndent(); sb.AppendLine(navigationsCode); sb.IncrementIndent().IncrementIndent().IncrementIndent(); sb.AppendLine("});"); } } Generator.CSharpCodeGeneratorHelper.EndMethod(sb); }