Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多对多关系上的软删除_C#_Entity Framework_Entity Framework 6_Soft Delete - Fatal编程技术网

C# 多对多关系上的软删除

C# 多对多关系上的软删除,c#,entity-framework,entity-framework-6,soft-delete,C#,Entity Framework,Entity Framework 6,Soft Delete,我发现唯一与我的问题最相似的是,但它没有回答我的问题。我有这个模型: 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&g

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

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; }
}
公共类配置文件
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共bool IsActive{get;set;}
公共布尔被删除{get;set;}
公共虚拟ICollection允许程序{get;set;}
公共虚拟ICollection不允许程序{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; }

}
公共类程序
{
公共int Id{get;set;}
公共字符串DisplayName{get;set;}
公共bool IsActive{get;set;}
公共布尔被删除{get;set;}
公共虚拟ICollection允许配置文件{get;set;}
公共虚拟ICollection不允许配置文件{get;set;}
}
如果我借助
IsDeleted
字段实现软删除,那么
ProfileProgram
表中的条目会发生什么变化它们是否被删除得太含蓄了?(我想在这个模型中有两个多对多关系)。如果我使用位于中的实体框架过滤器


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

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

没有“太隐式删除”。没有“软删除”。删除意味着删除。“软删除”是一个不幸的名称,用于更新行上的字段,因此无法从查询中检索该字段。你的问题在哪里?至于反对票,因为这不是一个好问题。你根本没有展示你是如何实现“软删除”的。如果你不发布代码,人们就无法帮助你发现代码中的问题。最后,“软删除”在现实世界或企业中并不存在。公司不会删除。他们更改记录的状态并跟踪更改。如果程序被中断,其状态将更改为
中断
,并带有结束日期。当需要删除时(如由于GDPR规则),他们会删除物理数据库中的记录sense@PanagiotisKanavos软删除就是软删除!我想银行或安全应用程序中的每个人都知道我的意思,我已经展示了它是通过
IsDelete
字段实现的,并链接了一个相关问题,提供了足够的上下文。我的问题是**我应该如何在多对多关系中实现软删除**您希望更新连接表中的附加字段(
IsDeleted
)。因此,连接表必然会成为模型中可见的实体。