本文整理汇总了C#中System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.Single方法的典型用法代码示例。如果您正苦于以下问题:C# EdmModelDiffer.Single方法的具体用法?C# EdmModelDiffer.Single怎么用?C# EdmModelDiffer.Single使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer
的用法示例。
在下文中一共展示了EdmModelDiffer.Single方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Can_detect_renamed_many_to_many_table
public void Can_detect_renamed_many_to_many_table()
{
var modelBuilder = new DbModelBuilder();
modelBuilder.Entity<ManyManySelfRef>();
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder.Entity<ManyManySelfRef>().ToTable("Renamed");
var model2 = modelBuilder.Build(ProviderInfo);
var operations
= new EdmModelDiffer().Diff(model1.GetModel(), model2.GetModel());
var tableRename = (RenameTableOperation)operations.Single();
Assert.Equal("dbo.ManyManySelfRefs", tableRename.Name);
Assert.Equal("Renamed", tableRename.NewName);
}
示例2: Can_detect_simple_table_rename
public void Can_detect_simple_table_rename()
{
var modelBuilder = new DbModelBuilder();
modelBuilder.Entity<MigrationsCustomer>();
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder.Entity<MigrationsCustomer>().ToTable("Customer");
var model2 = modelBuilder.Build(ProviderInfo);
var operations
= new EdmModelDiffer().Diff(model1.GetModel(), model2.GetModel());
var tableRename = (RenameTableOperation)operations.Single();
Assert.Equal("dbo.MigrationsCustomers", tableRename.Name);
Assert.Equal("Customer", tableRename.NewName);
}
示例3: Should_not_detect_pk_change_when_pk_column_renamed
public void Should_not_detect_pk_change_when_pk_column_renamed()
{
var modelBuilder = new DbModelBuilder();
modelBuilder.Entity<OrderLine>();
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder = new DbModelBuilder();
modelBuilder.Entity<OrderLine>().Property(ol => ol.Id).HasColumnName("pk_ID");
var model2 = modelBuilder.Build(ProviderInfo);
var operations = new EdmModelDiffer().Diff(
model1.GetModel(), model2.GetModel());
Assert.Equal(1, operations.Count());
Assert.True(operations.Single() is RenameColumnOperation);
}
示例4: Table_rename_does_not_trigger_index_drop_and_create
public void Table_rename_does_not_trigger_index_drop_and_create()
{
var modelBuilder = new DbModelBuilder();
modelBuilder.Entity<MigrationsCustomer>()
.Property(e => e.Id)
.HasColumnAnnotation(IndexAnnotation.AnnotationName, new IndexAnnotation(new IndexAttribute("Bella")));
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder.Entity<MigrationsCustomer>()
.ToTable("Customer")
.Property(e => e.Id)
.HasColumnAnnotation(IndexAnnotation.AnnotationName, new IndexAnnotation(new IndexAttribute("Bella")));
var model2 = modelBuilder.Build(ProviderInfo);
var operations= new EdmModelDiffer().Diff(model1.GetModel(), model2.GetModel());
Assert.IsType<RenameTableOperation>(operations.Single());
}
示例5: Can_detect_table_move_when_ospace_type_renamed_on_one_side_of_many_to_many
public void Can_detect_table_move_when_ospace_type_renamed_on_one_side_of_many_to_many()
{
var modelBuilder = new DbModelBuilder();
modelBuilder
.Entity<TableRenameManyManyLeft1>()
.ToTable("Left")
.HasMany(l => l.Rights)
.WithMany(r => r.Lefts)
.Map(
m =>
{
m.MapLeftKey("LeftId");
m.MapRightKey("RightId");
m.ToTable("Join", "foo");
});
modelBuilder
.Entity<OSpaceRenames_v1.TableRenameManyManyRight>()
.ToTable("Right");
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder = new DbModelBuilder();
modelBuilder
.Entity<TableRenameManyManyLeft2>()
.ToTable("Left")
.HasMany(l => l.Rights)
.WithMany(r => r.Lefts)
.Map(
m =>
{
m.MapLeftKey("LeftId");
m.MapRightKey("RightId");
m.ToTable("Join", "bar");
});
modelBuilder
.Entity<OSpaceRenames_v2.TableRenameManyManyRight>()
.ToTable("Right");
var model2 = modelBuilder.Build(ProviderInfo);
var operations
= new EdmModelDiffer().Diff(model1.GetModel(), model2.GetModel());
Assert.Equal(1, operations.Count());
var moveTableOperation = (MoveTableOperation)operations.Single();
Assert.Equal("foo.Join", moveTableOperation.Name);
Assert.Equal("bar", moveTableOperation.NewSchema);
}
示例6: Can_detect_table_move_when_ospace_type_renamed
public void Can_detect_table_move_when_ospace_type_renamed()
{
var modelBuilder = new DbModelBuilder();
modelBuilder.Entity<TableRename1>().ToTable("foo.TableRename1");
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder = new DbModelBuilder();
modelBuilder.Entity<TableRename2>().ToTable("bar.TableRename1");
var model2 = modelBuilder.Build(ProviderInfo);
var operations
= new EdmModelDiffer().Diff(model1.GetModel(), model2.GetModel());
var moveTableOperation = (MoveTableOperation)operations.Single();
Assert.Equal("foo.TableRename1", moveTableOperation.Name);
Assert.Equal("bar", moveTableOperation.NewSchema);
}
示例7: Can_detect_table_rename_when_ospace_type_renamed_table_splitting
public void Can_detect_table_rename_when_ospace_type_renamed_table_splitting()
{
var modelBuilder = new DbModelBuilder();
modelBuilder.Entity<TableRenameTableSplit1>();
modelBuilder.Entity<TableRenameTableSplit1>().HasRequired(t => t.Payload).WithRequiredPrincipal();
modelBuilder.Entity<TableRenameTableSplitPayload1>().ToTable("TableRenameTableSplit1");
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder = new DbModelBuilder();
modelBuilder.Entity<TableRenameTableSplit2>();
modelBuilder.Entity<TableRenameTableSplit2>().HasRequired(t => t.Payload).WithRequiredPrincipal();
modelBuilder.Entity<TableRenameTableSplitPayload2>().ToTable("TableRenameTableSplit2");
var model2 = modelBuilder.Build(ProviderInfo);
var operations
= new EdmModelDiffer().Diff(model1.GetModel(), model2.GetModel());
var renameTableOperation = (RenameTableOperation)operations.Single();
Assert.Equal("dbo.TableRenameTableSplit1", renameTableOperation.Name);
Assert.Equal("TableRenameTableSplit2", renameTableOperation.NewName);
}
示例8: Diffing_TPH_models_with_discriminator_based_on_nullability_rather_than_value_works
public void Diffing_TPH_models_with_discriminator_based_on_nullability_rather_than_value_works()
{
var modelBuilder = new DbModelBuilder();
modelBuilder.Entity<Foo2157>();
modelBuilder.Entity<EnhancedFoo2157>().Map(m => m.Requires(o => o.XColumn).HasValue());
var model1 = modelBuilder.Build(ProviderInfo);
// making this change to force the actual diff
modelBuilder.Entity<EnhancedFoo2157>().Property(e => e.Name).HasMaxLength(20);
var model2 = modelBuilder.Build(ProviderInfo);
var operations = new EdmModelDiffer().Diff(model1.GetModel(), model2.GetModel());
var alterColumnOperation = (AlterColumnOperation)operations.Single();
Assert.Equal("Name", alterColumnOperation.Column.Name);
}
示例9: Can_detect_renamed_indexes
public void Can_detect_renamed_indexes()
{
var modelBuilder = new DbModelBuilder();
modelBuilder.Entity<IndexRename>();
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder
.Entity<IndexRename>()
.Property(p => p.Indexed)
.HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute("NewName")));
var model2 = modelBuilder.Build(ProviderInfo);
var operations
= new EdmModelDiffer().Diff(model1.GetModel(), model2.GetModel());
var renameIndexOperation = (RenameIndexOperation)operations.Single();
Assert.Equal("dbo.IndexRenames", renameIndexOperation.Table);
Assert.Equal("IX_Indexed", renameIndexOperation.Name);
Assert.Equal("NewName", renameIndexOperation.NewName);
}
示例10: Can_detect_removed_index
public void Can_detect_removed_index()
{
var modelBuilder = new DbModelBuilder();
modelBuilder.Entity<MigrationsCustomer>()
.Property(c => c.CustomerNumber)
.HasColumnAnnotation(IndexAnnotation.AnnotationName, new IndexAnnotation(new IndexAttribute("Bella")));
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder = new DbModelBuilder();
modelBuilder.Entity<MigrationsCustomer>()
.Property(c => c.CustomerNumber);
var model2 = modelBuilder.Build(ProviderInfo);
var operations = new EdmModelDiffer().Diff(model1.GetModel(), model2.GetModel());
var dropIndexOperation = (DropIndexOperation)operations.Single();
Assert.Equal("Bella", dropIndexOperation.Name);
Assert.Equal("dbo.MigrationsCustomers", dropIndexOperation.Table);
Assert.Equal(new List<string> { "CustomerNumber" }, dropIndexOperation.Columns);
}
示例11: Can_detect_removed_column_annotations
public void Can_detect_removed_column_annotations()
{
var modelBuilder = new DbModelBuilder();
modelBuilder.Entity<MigrationsCustomer>()
.Property(c => c.FullName)
.HasColumnAnnotation("A1", "V1");
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder = new DbModelBuilder();
modelBuilder.Entity<MigrationsCustomer>()
.Property(c => c.FullName);
var model2 = modelBuilder.Build(ProviderInfo);
var operations = new EdmModelDiffer().Diff(model1.GetModel(), model2.GetModel());
var alterColumnOperation = (AlterColumnOperation)operations.Single();
Assert.Equal("V1", alterColumnOperation.Column.Annotations["A1"].OldValue);
Assert.Null(alterColumnOperation.Column.Annotations["A1"].NewValue);
}
示例12: Can_detect_changed_columns
public void Can_detect_changed_columns()
{
var modelBuilder = new DbModelBuilder();
modelBuilder.Entity<MigrationsCustomer>();
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder
.Entity<MigrationsCustomer>()
.Property(c => c.FullName)
.HasMaxLength(25)
.IsUnicode(false);
var model2 = modelBuilder.Build(ProviderInfo);
var operations
= new EdmModelDiffer().Diff(model1.GetModel(), model2.GetModel());
var alterColumnOperation = (AlterColumnOperation)operations.Single();
Assert.Equal(25, alterColumnOperation.Column.MaxLength);
if (DatabaseProvider != DatabaseProvider.SqlServerCe)
{
Assert.Equal(false, alterColumnOperation.Column.IsUnicode);
}
var inverseAlterColumnOperation
= (AlterColumnOperation)alterColumnOperation.Inverse;
Assert.Equal("FullName", inverseAlterColumnOperation.Column.Name);
Assert.Equal(
DatabaseProvider != DatabaseProvider.SqlServerCe
? (int?)null
: 4000,
inverseAlterColumnOperation.Column.MaxLength);
Assert.Null(inverseAlterColumnOperation.Column.IsUnicode);
}
示例13: Can_detect_column_drop_when_ospace_type_renamed
public void Can_detect_column_drop_when_ospace_type_renamed()
{
var modelBuilder = new DbModelBuilder();
modelBuilder.Entity<ColumnRename1>();
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder = new DbModelBuilder();
modelBuilder.Entity<ColumnRename2>().Ignore(t => t.Member);
var model2 = modelBuilder.Build(ProviderInfo);
var operations
= new EdmModelDiffer().Diff(model1.GetModel(), model2.GetModel());
var dropColumnOperation = (DropColumnOperation)operations.Single();
Assert.Equal("Member", dropColumnOperation.Name);
}