通常使用 BLToolKit 我通过以下方式从数据库中获取数据:
using ( DbManager db = new MyDbManager() )
{
IList<MyObjects> objects = db
.SetCommand(query)//sometimes with additional parameters
.ExecuteList<MyObjects>()
;
}
我希望有能力做到以下几点:
using ( DbManager db = new MyDbManager() )
{
IQueryable<MyObjects> qObjs = db
.SetCommand(query)//sometimes with additional parameters
.ExecuteQuery<MyObjects>()// here I don't want query actually to be executed
;
// ... another logic, that could pass qObj into other part of program
IList<MyObjects> objects = qObjs
.Where(obj=>obj.SomeValue>=SomeLimit) // here I want to put additional filters
.ExecuteList() // and only after that I wan't to execute query and fetch results
;
}
可以通过修改原始查询字符串(修改 WHERE 部分)来解决这个问题,但有时它非常复杂。
有什么简单的方法可以做到这一点吗?
谢谢。欢迎任何想法!