本文整理汇总了C#中System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.Select方法的典型用法代码示例。如果您正苦于以下问题:C# EdmModelDiffer.Select方法的具体用法?C# EdmModelDiffer.Select怎么用?C# EdmModelDiffer.Select使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer
的用法示例。
在下文中一共展示了EdmModelDiffer.Select方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Can_detect_added_foreign_keys
public void Can_detect_added_foreign_keys()
{
var modelBuilder = new DbModelBuilder();
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder.Entity<Order>();
var model2 = modelBuilder.Build(ProviderInfo);
var operations = new EdmModelDiffer().Diff(
model1.GetModel(), model2.GetModel());
Assert.Equal(4, operations.Count());
Assert.Equal(2, operations.OfType<CreateTableOperation>().Count());
Assert.Equal(1, operations.OfType<CreateIndexOperation>().Count());
// create fk indexes first
Assert.True(
operations.Select(
(o, i) => new
{
o,
i
}).Single(a => a.o is CreateIndexOperation).i <
operations.Select(
(o, i) => new
{
o,
i
}).Single(a => a.o is AddForeignKeyOperation).i);
var addForeignKeyOperation = operations.OfType<AddForeignKeyOperation>().Single();
Assert.Equal("ordering.Orders", addForeignKeyOperation.PrincipalTable);
Assert.Equal("OrderId", addForeignKeyOperation.PrincipalColumns.Single());
Assert.Equal("dbo.OrderLines", addForeignKeyOperation.DependentTable);
Assert.Equal("OrderId", addForeignKeyOperation.DependentColumns.Single());
Assert.True(addForeignKeyOperation.CascadeDelete);
}
示例2: Can_detect_removed_foreign_keys
public void Can_detect_removed_foreign_keys()
{
var modelBuilder = new DbModelBuilder();
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder.Entity<Order>();
var model2 = modelBuilder.Build(ProviderInfo);
var operations = new EdmModelDiffer().Diff(
model2.GetModel(), model1.GetModel());
Assert.Equal(4, operations.Count());
Assert.Equal(2, operations.OfType<DropTableOperation>().Count());
Assert.Equal(1, operations.OfType<DropIndexOperation>().Count());
// drop fks before indexes
Assert.True(
operations.Select(
(o, i) => new
{
o,
i
}).Single(a => a.o is DropForeignKeyOperation).i <
operations.Select(
(o, i) => new
{
o,
i
}).Single(a => a.o is DropIndexOperation).i);
var dropForeignKeyOperation = operations.OfType<DropForeignKeyOperation>().Single();
Assert.Equal("ordering.Orders", dropForeignKeyOperation.PrincipalTable);
Assert.Equal("dbo.OrderLines", dropForeignKeyOperation.DependentTable);
Assert.Equal("OrderId", dropForeignKeyOperation.DependentColumns.Single());
var inverse = (AddForeignKeyOperation)dropForeignKeyOperation.Inverse;
Assert.Equal("ordering.Orders", inverse.PrincipalTable);
Assert.Equal("OrderId", inverse.PrincipalColumns.Single());
Assert.Equal("dbo.OrderLines", inverse.DependentTable);
Assert.Equal("OrderId", inverse.DependentColumns.Single());
}
示例3: Can_detect_changed_primary_key_when_pk_column_facets_changed
public void Can_detect_changed_primary_key_when_pk_column_facets_changed()
{
var modelBuilder = new DbModelBuilder();
modelBuilder.Entity<PkEntity1>();
var model1 = modelBuilder.Build(ProviderInfo);
modelBuilder = new DbModelBuilder();
modelBuilder.Entity<PkEntity1>().Property(e => e.Id).HasMaxLength(42);
var model2 = modelBuilder.Build(ProviderInfo);
var operations
= new EdmModelDiffer().Diff(model1.GetModel(), model2.GetModel());
Assert.Equal(8, operations.Count());
Assert.Equal(
new[]
{
typeof(DropForeignKeyOperation),
typeof(DropIndexOperation),
typeof(DropPrimaryKeyOperation),
typeof(AlterColumnOperation),
typeof(AlterColumnOperation),
typeof(AddPrimaryKeyOperation),
typeof(CreateIndexOperation),
typeof(AddForeignKeyOperation)
},
operations.Select(o => o.GetType()));
}