0
我堅持過去幾天沒有太多進展的這一要求。帶有IQueryable實體的DbContext編寫自定義查詢
我們的數據庫層是通過DbContext與存儲庫,工作單元模式處理的。 它在poko類上生成查詢。
public virtual IQueryable<ENT> All(params Expression<Func<ENT, object>>[] includes)
{
IQueryable<ENT> query = Set;
query = AddIncludesToQry(query, includes);
return query;
}
protected DbSet<ENT> Set
{
get { return Ctxt.Set<ENT>(); }
}
protected virtual IQueryable<ENT> AddIncludesToQry(IQueryable<ENT> query, params Expression<Func<ENT, object>>[] includes)
{
Expression<Func<ENT, object>>[] includesToUse = d2l.NullOrEmpty(includes)
? DefaultIncludes
: includes;
if (d2l.NullOrEmpty(includesToUse)) return query;
foreach (var incl in includesToUse)
{
query = query.Include(incl);
}
return query;
}
ENT =波科模型類
AddIncludesToQry =添加where子句中的條件。
這將通過過濾where條件來返回整個表數據(在數據庫中將有一個帶有poko類名的表)。
但是,我希望得到的數據有時幾乎不同。 例如,我想要限制選擇列表以返回deptName,Count(僱員) 這隻需要選擇列表中的兩列,並按deptName分組。
我不知道如何使用這種模式,仍然可以IQueryable查詢來實現這一點。
有人可以提出任何想法嗎?