linq to sql ExecuteQuery() 作为 IQueryable
ExecuteQuery() 方法返回 IEnumerable 但有没有办法让它返回 IQueryable?
ExecuteQuery() method returns an IEnumerable but is there a way to make it return IQueryable?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果需要,您可以将查询结果导出到列表中,然后将其转换为 IQueryable。 请参阅下一个示例代码:
If you want, you can export the result of your query to a list, and next convert it to IQueryable. See the next example code:
好吧,你可以调用
AsQueryable
,但它不会有任何好处。 问题是,当您使用 ExecuteQuery 时,查询不是可组合的,因为 LINQ to SQL 本身无法“理解”它。IQueryable
的核心目的之一是允许将查询的各个方面组合在一起,然后 LINQ to SQL 可以将它们转换为单个 SQL 查询。 当查询的其中一位实际上不透明时,这不起作用。Well, you can call
AsQueryable
, but it won't do any good. The problem is that when you useExecuteQuery
, the query isn't composable because LINQ to SQL doesn't "understand" it as such.One of the core purposes of
IQueryable<T>
is to allow the various aspects of a query to be composed together and then LINQ to SQL can convert them into a single SQL query. That just doesn't work when one of the bits of the query is effectively opaque.