EF按属性/类型预筛选表
本文关键字:筛选 类型 属性 EF | 更新日期: 2023-09-27 18:21:34
我正在使用EF 6,并使用代码优先迁移。
我以前有一个表Requests
,它只包含一种类型的请求,现在我开始在其中添加不同类型的请求。在用LINQ查询它时,我总是要做这样的事情:
_repository.Requests.Where(r => r.Type == Type.BestRequest &&......)
_repository.Requests.Where(r => r.Type == Type.AwesomeRequest &&......)
在我的DbContext
中,我有一个DbSet
,它总是返回:
public DbSet<Request> Requests { get; set; }
有没有一种方法可以通过这样做来预过滤请求::
_repository.BestRequests.Where(r => ......)
但我仍然希望数据库中有一个名为"请求"的表
您可以查看此链接
我以前用过它,它正是我想要的。。但问题是,我总是要"应用"过滤器。
我在IRepository
中创建了额外的属性,并像这样在DbContext中实现了它们。
IQueryable<Request> IRepository.BestRequests {
get { return Requests.Where(r => r.Type == Type.BestRequest); }
}
IQueryable<Request> IRepository.AwesomeRequests {
get { return Requests.Where(r => r.Type == Type.AwesomeRequest); }
}