Asp.net mvc 基本对象类自动具有一个过滤器以显示未删除的对象

Asp.net mvc 基本对象类自动具有一个过滤器以显示未删除的对象,asp.net-mvc,entity-framework,automation,filtering,Asp.net Mvc,Entity Framework,Automation,Filtering,对不起,标题太弱了 我对我的网站框架的想法是能够删除一些东西,而不从数据库中实际删除它,只将其标记为已删除,最终成为回收站 一个例子是,如果您有一个与之关联的专辑,其中包含流派列表,并且您删除了其中一个流派(与专辑无关),我希望流派与专辑保持关联,允许用户在以后需要时将流派更改为其他类型 因此,我想实现一个过滤器,该过滤器将自动应用于继承以下BaseObject的所有对象: public class BaseObject { [DatabaseGenerated(DatabaseGene

对不起,标题太弱了

我对我的网站框架的想法是能够删除一些东西,而不从数据库中实际删除它,只将其标记为已删除,最终成为回收站

一个例子是,如果您有一个与之关联的
专辑
,其中包含
流派列表
,并且您删除了其中一个
流派
(与专辑无关),我希望
流派
与专辑保持关联,允许用户在以后需要时将流派更改为其他类型

因此,我想实现一个过滤器,该过滤器将自动应用于继承以下
BaseObject
的所有对象:

public class BaseObject
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Key]
    public Guid Oid { get; set; 
    public DateTime DateCreated { get; set; }
    public bool IsDeleted { get; set; }
    public DateTime? DeletedDate { get; set; }
}
之后,我们有
相册
流派
类(继承BaseObject):

任何能为我指明正确方向的建议都将不胜感激


我曾在
公共类BaseActionFilter:ActionFilterAttribute
类中尝试过类似于
public override void OnResultExecuting(ResultExecutingContext filterContext)
的想法,它会自动为每个页面添加一组所需的对象(
ViewBag
),但是,我不能对所有应用了过滤的对象掉以轻心。

要做到这一点,您需要在某个地方为请求设置一个标志(RequestContext是一个很好的起点),然后使用该标志通过自动处理业务逻辑的中介服务查询对象。尽管如此,我无法想象以这种方式使用过滤器是一个好主意的场景,您确定过滤器是您所需要的吗?这可能会有帮助:
public class Album : BaseObject
{
    public string Name { get; set; }
    public virtual List<AlbumsGenres> Albums { get; set; }
}

public class Genre : BaseObject
{
    public string Name { get; set; }
    public virtual List<AlbumsGenres> Genres { get; set; }
}
return View(db.Genres.ToList());