EF Code First Cascade NULL

时间:2017-10-18 06:57:34

标签: asp.net-mvc entity-framework ef-code-first

我们拥有ASP MVC实体框架6 Code First项目,在MS SQL数据库中有70多个表。

对于每个表上的每个记录,我们存储最后修改它的用户。几乎每个表的结构都是这样的:

public class TableA
{
    public int Id{ get; set; }
    .....
    public DateTime? DateModified { get; set; }
    public int? UserModifiedId { get; set; }
    public virtual ApplicationUser UserModified { get; set; }
}

我们的问题是,如果用户ID在任何表中,则删除用户时会出现错误。属性UserModifiedId。

我们需要EF将UserModifiedId = UserId的所有表的UserModifiedId设置为NULL。

过去我们设置了这个添加到表上的DELETE SET NULL,但是EF不允许像这样设置表。

任何想法我们怎样才能做到这一点?

已更新

我们已经知道EF管理这是孩子被加载到上下文中,但是每次我们想要删除用户时我们都不能加载超过70个表。

1 个答案:

答案 0 :(得分:1)

一种方法可能是添加一个迁移,修改所有应该try { JSONObject jsonObject = new JSONObject(response); String author = jsonObject.getString("author"); String quote = jsonObject.getString("quote"); } catch (JSONException e) { e.printStackTrace(); } 的表格(仅适用于上面的示例代码):

CASCADE ON DELTE SET NULL