首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BLToolKit:它支持IQueryable吗?

BLToolKit:它支持IQueryable吗?
EN

Stack Overflow用户
提问于 2011-01-06 04:45:57
回答 2查看 852关注 0票数 0

通常,在使用BLToolKit时,我会通过以下方式从DB获取数据:

代码语言:javascript
复制
using ( DbManager db = new MyDbManager() )
{
    IList<MyObjects> objects = db
        .SetCommand(query)//sometimes with additional parameters
        .ExecuteList<MyObjects>()
        ;
}

我希望能够做到以下几点:

代码语言:javascript
复制
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部分)来解决这个问题,但有时会非常复杂。

有什么简单的方法可以做到吗?

谢谢。欢迎任何想法!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-06 11:11:25

代码语言:javascript
复制
using ( DbManager db = new MyDbManager() )
{
    IQueryable<MyObjects> qObjs = 
        from p in db.GetTable<MyObjects>()
        //sometimes with additional parameters
        select p;

    // ... 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
        .ToList()  // and only after that I wan't to execute query and fetch results
        ;
}
票数 2
EN

Stack Overflow用户

发布于 2014-10-27 11:55:48

如果你想使用IQueriable,你必须使用Linq.必须导入BlToolkit.Linq和BlToolkit.Data.Linq。

代码语言:javascript
复制
        IQueryable<DataModel.Object> query  = db.Object;


        If ((int)cmb_somthing.SelectedValue) > 0 {

            int ID  = (int)cmb_somthing.SelectedValue;
            query = query.Where(m=> m.ID = ID);

        }
        query = query.Where(m=> m.Date >= StartDate &&
                                m.Date <= EndDate);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4609002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档