小编fen*_*gyj的帖子

删除记录并将外键设置为null时,Entity Framework是否支持?

我有这样的模型:

public class Account
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int? ParentId { get; set; }
    public Account Parent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我添加以下配置:

    this.HasOptional(item => item.Parent)
        .WithMany()
        .HasForeignKey(item => item.ParentId)
        .WillCascadeOnDelete(true);
Run Code Online (Sandbox Code Playgroud)

然后我收到以下错误消息:

程序集初始化方法UnitTest.Biz.Accounting.TestInitializer.Init引发异常.System.Data.SqlClient.SqlException:System.Data.SqlClient.SqlException:在表'acct_Account'上引入FOREIGN KEY约束'FK_dbo.acct_Account_dbo.acct_Account_ParentId'可能会导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束.无法创建约束.

我已经阅读了EF的文档,但我不明白我的代码在哪里出错...

如果依赖实体上的外键可以为空,则Code First不会在关系上设置级联删除,并且当删除主体时,外键将设置为null http://msdn.microsoft.com/en-us/数据/ jj591620#CascadeDelete

entity-framework

4
推荐指数
1
解决办法
3377
查看次数

标签 统计

entity-framework ×1