Entity framework WillCascadeOnDelete不';在数据库上建立级联删除
我不知道我是否遗漏了一些明显的东西。我们在一个项目中使用EntityFramework6.0.0-rc1,该项目中的模型是用FluentAPI建立的。我们其中一个实体的配置可以是:Entity framework WillCascadeOnDelete不';在数据库上建立级联删除,entity-framework,Entity Framework,我不知道我是否遗漏了一些明显的东西。我们在一个项目中使用EntityFramework6.0.0-rc1,该项目中的模型是用FluentAPI建立的。我们其中一个实体的配置可以是: HasMany(t => t.Entity) .WithRequired(tc => tc.ParentEntity) .HasForeignKey(tc => new {tc.Key1, tc.Key2}) .WillCascadeOnDelete(true); 运行此配置时,将正确创建数
HasMany(t => t.Entity)
.WithRequired(tc => tc.ParentEntity)
.HasForeignKey(tc => new {tc.Key1, tc.Key2})
.WillCascadeOnDelete(true);
运行此配置时,将正确创建数据库以及所有表和字段。即使关系已正确建立,但删除级联也不正确
若我转到ManagementStudio并检查关系的更新/删除规则,则两者都将停用
感谢您的帮助。这些课程:
public class Parent
{
public int ID { get; set; }
public ICollection<Child> Children { get; set; }
}
public class Child
{
public int ID { get; set; }
public int ParentID { get; set; }
public Parent Parent { get; set; }
}
与问题无关,但EF6现在稳定了-您应该更新RC版本。不清楚是否调用了第一个
的多个类型,您能澄清一下吗?您能否向我们展示在迁移的Up()
方法中生成的代码?
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Parent>()
.HasMany(p => p.Children)
.WithRequired(c => c.Parent)
.HasForeignKey(c => c.ParentID)
.WillCascadeOnDelete(true);
}
public override void Up()
{
CreateTable(
"dbo.Children",
c => new
{
ID = c.Int(nullable: false, identity: true),
ParentID = c.Int(nullable: false),
})
.PrimaryKey(t => t.ID)
.ForeignKey("dbo.Parents", t => t.ParentID, cascadeDelete: true)
.Index(t => t.ParentID);
CreateTable(
"dbo.Parents",
c => new
{
ID = c.Int(nullable: false, identity: true),
})
.PrimaryKey(t => t.ID);
}