如何将 T 数组 (IEnumerable) 转换为 IQueryable使用 LINQ 进行处理?
我正在开发一个使用 WCF 服务器的应用程序(使用新的测试版 Mindscape LightSpeed ORM)并在 ASP.NET MVC2 客户端上使用该服务。我的实体在客户端显示为 T
或 IEnumerable
数组。我想在数据到达后对其进行一些很酷的事情,但 LINQ 语法需要 IQueryable
。
我知道有一种方法可以从 IEnumerable
转换为 IQueryable
,但到目前为止我还没有找到它。有人可以帮忙吗?
谢谢, 戴夫
I'm working on an app using a WCF server (using the new beta Mindscape LightSpeed ORM) and consuming the service at an ASP.NET MVC2 client. My entities show up at the client as array of T
, or IEnumerable<T>
. I want to do cool things with the data after it has arrived, but the LINQ syntax required IQueryable<T>
.
I know there is a way to convert from IEnumerable<T>
to IQueryable<T>
, but I have had no luck so far searching for it. Can anybody help?
Thanks,
Dave
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
好吧,我怀疑您正在考虑
Queryable.AsQueryable()
- 但是是什么让您认为需要使用
IQueryable
才能使用 LINQ?将IEnumerable
转换为IQueryable
不会为您带来IQueryable
的大部分好处。LINQ to Objects 全部基于
IEnumerable
。如果您对使用已收到的数据感到满意,那么这就是您所需要的。但是,如果您想在客户端表达查询并告诉 WCF 服务器执行该查询(例如,在数据库中或至少在 WCF 端执行过滤),那就 d 使用
IQueryable
。您可能会发现我的 有关IQueryable
的 Edulinq 帖子很有用。不过,您需要某种方式将服务表示为IQueryable
- 而此时您超出了我的 WCF 知识范围。Well, I suspect you're thinking of
Queryable.AsQueryable()
- but what makes you think that you need to useIQueryable<T>
to use LINQ? Converting anIEnumerable<T>
toIQueryable<T>
won't give you most of the benefits ofIQueryable<T>
.LINQ to Objects is all based around
IEnumerable<T>
. If you're happy working with the data you've already received, that's all you need.If, however, you want to express a query at your client and tell the WCF server to execute that query (e.g. performing the filtering in the database or at least at the WCF side), that's when you'd use
IQueryable<T>
. You might find my Edulinq post aboutIQueryable<T>
useful. You'd need some way of representing the service as anIQueryable<T>
though - and at that point you're beyond my WCF knowledge.尝试以下方法:
AsQueryable()
Try the following method:
AsQueryable()