[英]EF doing prefilter table by property/type
我正在使用EF 6,并使用代码优先迁移。
我以前有一个表Requests
,它只包含一种类型的请求,现在我开始在其中添加不同类型的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 => ......)
但是我仍然希望在数据库中有一个名为Requests的表。
您可以查看此链接
我以前用过它,它确实达到了我想要的效果。但是问题是我总是不得不“应用”过滤器。
我在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); }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.