实体框架外键关联总是意味着级联删除吗?

时间:2012-09-01 00:16:53

标签: ef-code-first entity-framework-5

阅读Foreign Keys in the Entity Framework后,我尝试将外键关系添加到EF 5 Code First应用程序(应用程序使用独立关联到目前为止)。

我注意到生成的DDL包含级联删除。这与独立协会的行为相反。

假设通过添加根据约定 ClassnameId 命名的 int 属性在EF Code First中创建外键关系,是否可以进行非级联删除?如果是这样,将为 ClassnameId 分配什么值来取消关联相关对象而不将其从数据库中删除?

1 个答案:

答案 0 :(得分:1)

如果您明确声明了一个不可为空的外键,EF将假定您想要级联删除。

您可以将外键设为可为空:

public int? YourFkId {get;set;}

或者您可以在OnModelCreating

中使用流利的符号
     modelBuilder.Entity<Class1>()
        .HasMany( c => c.Class2s )
        .WithRequired(x => x.Class1 )
        .WillCascadeOnDelete(false);