我正在使用EF 6,并使用代码优先迁移。
之前我有一个表Requests
,它只包含一种类型的请求,现在我开始在那里添加不同类型的请求,并且总是在用LINQ查询时,我必须做这样的事情:< / p>
_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。
答案 0 :(得分:1)
您可以查看此link
我之前使用它并且它完全符合我的要求..但问题是我总是必须&#34;应用&#34;过滤器。
答案 1 :(得分:0)
我在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); }
}