阅读Foreign Keys in the Entity Framework后,我尝试将外键关系添加到EF 5 Code First应用程序(应用程序使用独立关联到目前为止)。
我注意到生成的DDL包含级联删除。这与独立协会的行为相反。
假设通过添加根据约定 ClassnameId 命名的 int 属性在EF Code First中创建外键关系,是否可以进行非级联删除?如果是这样,将为 ClassnameId 分配什么值来取消关联相关对象而不将其从数据库中删除?
答案 0 :(得分:1)
如果您明确声明了一个不可为空的外键,EF将假定您想要级联删除。
您可以将外键设为可为空:
public int? YourFkId {get;set;}
或者您可以在OnModelCreating
modelBuilder.Entity<Class1>()
.HasMany( c => c.Class2s )
.WithRequired(x => x.Class1 )
.WillCascadeOnDelete(false);