软删除多对多关系

时间:2018-06-08 13:06:31

标签: c# entity-framework entity-framework-6 soft-delete

我发现与我的问题最相似的唯一问题是here,但它没有回答我的问题。我有这个模型:

public class Profile
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsActive { get; set; }  
    public bool IsDeleted {get; set; }
    public virtual ICollection<Program> AllowedPrograms { get; set; }
    public virtual ICollection<Program> DisAllowedPrograms { get; set; }
}

和此:

public class Program
{
    public int Id { get; set; }
    public string DisplayName { get; set; }     
    public bool IsActive { get; set; }
    public bool IsDeleted {get; set; }
    public virtual ICollection<Profile> AllowedProfiles { get; set; }
    public virtual ICollection<Profile> DisAllowedProfiles { get; set; }

}

如果我在IsDeleted字段的帮助下实现软删除,那么ProfileProgram表中的条目会发生什么变化? 它们是否被隐式删除? (我猜这个模型中存在两个多对多的关系)。如果我使用位于here的实体框架过滤器。

或者我应该自己创建中间表并添加IsDeleted字段?这种方法似乎也改变了我的代码,我真的在寻找替代方法。

1 个答案:

答案 0 :(得分:1)

是的,ProfileProgram表不会自动删除。是的,你应该创建IsDeleted表(不是字段)。