首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linq to sql ExecuteQuery() as IQueryable

linq to sql ExecuteQuery() as IQueryable
EN

Stack Overflow用户
提问于 2009-06-30 18:33:59
回答 2查看 4.1K关注 0票数 4

ExecuteQuery()方法返回一个IEnumerable,但是有没有办法让它返回IQueryable呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-30 18:37:29

嗯,你可以调用AsQueryable,但这不会有任何好处。问题是,当您使用ExecuteQuery时,查询不是可组合的,因为LINQ to SQL并不能“理解”它。

IQueryable<T>的核心目的之一是允许将查询的各个方面组合在一起,然后LINQ to SQL可以将它们转换为单个SQL查询。当查询的某一部分实际上是不透明的时,这就不起作用了。

票数 9
EN

Stack Overflow用户

发布于 2011-07-13 04:01:00

如果需要,可以将查询结果导出到列表,然后将其转换为IQueryable。请参阅下一个示例代码:

代码语言:javascript
复制
public IQueryable<Data> GetData()
    string query = @"select ...";
    object[] parameters = new object[...]{...};
    var resultQuery = this.DataContext.ExecuteQuery<SICDB.Data>(query, parameters);
    var tempList = resultQuery .ToList();
    return tempList.AsQueryable();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1065241

复制
相关文章

相似问题

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