VS2013:如果我不检查实体,EF删除失败

时间:2014-08-02 14:54:01

标签: entity-framework debugging visual-studio-2013

设置

我有Visual Studio 2013,使用EF6(代码优先使用现有数据库),Resharper 8并针对本地托管的MS SQL服务器2012运行我的调试会话。

代码段

问题在于这种方法:

    public void Delete(MyEntityClass myEntityInstance)
    {
        DbContext.MyEntityClass.Remove(myEntityInstance);
    }

在调用上一个方法后立即调用以下代码段

DbContext.SaveChanges();

模型

MyEntityClass与MyChildEntityClass的一对一关系

目的

我想删除我的 myEntityInstance 以及子实体(来自 MyChildEntityClass 的实例)。我确保在READ上我已经包含了子实体。

问题

当我运行此代码时,我在 SaveChanges()上收到错误,说我违反了外键约束。指示该方法不会与我的父实体一起删除子实体。我知道我需要确保在我的父实体中加载子实体以执行CASCADE删除。

奇怪的是,当我在DbContext.MyEntityClass.Remove(myEntityInstance);上有断点并检查myEntityInstance(将myEntityInstance变量悬停并检查属性的值)然后让它进一步运行时,FK列在子表中设置为NULL,而对它有一个约束)

其他人是否有过这种鱼腥事件的经历?

0 个答案:

没有答案