我们在MS SQL数据库中拥有70多个表的ASP MVC实体框架6代码优先项目。EF代码第一级联NULL
对于每个表上的每条记录,我们都存储修改过的用户最后一条记录。几乎每个表的结构是这样的:
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设置为NULL UserModifiedId = UserId所有表的UserModifiedId。
在过去,我们将此添加到表ON DELETE SET NULL,但EF不允许设置这样的表。
任何想法我们该怎么做到这一点?
修订
我们已经知道EF管理,这是孩子们被加载到上下文,但我们不能加载我们要删除用户每次超过70+表。
另一个解决办法 - 不真正删除用户,但标志他们作为“软删除”,即通过设置“user.Deleted = true”属性。 –