如何将T(IEnumerable <t>)数组转换为IQueryable <t>以便使用LINQ进行处理?</t> </t>

时间:2011-03-03 15:56:29

标签: wcf linq asp.net-mvc-2 .net-4.0 lightspeed

我正在使用WCF服务器(使用新的Beta版Mindscape LightSpeed ORM)并在ASP.NET MVC2客户端上使用该服务。我的实体在客户端显示为TIEnumerable<T>的数组。我想在数据到达后对数据做很酷的事情,但LINQ语法需要IQueryable<T>

我知道有一种方法可以从IEnumerable<T>转换为IQueryable<T>,但到目前为止我还没有运气。有人可以帮忙吗?

谢谢, 戴夫

2 个答案:

答案 0 :(得分:6)

好吧,我怀疑你在考虑Queryable.AsQueryable() - 但是是什么让你认为你需要使用IQueryable<T>来使用LINQ?将IEnumerable<T>转换为IQueryable<T>不会带来IQueryable<T>的大部分好处。

LINQ to Objects全部基于IEnumerable<T>。如果您对使用过的数据感到满意,那就是您所需要的。

但是,如果您想在客户端表达查询并告诉WCF服务器执行该查询(例如在数据库中执行过滤或至少在WCF端执行过滤),那么 当你使用IQueryable<T>时。您可能会发现我的Edulinq post about IQueryable<T>很有用。您需要某种方式将服务表示为IQueryable<T> - 而且此时您已超出我的WCF知识。

答案 1 :(得分:0)

尝试以下方法: AsQueryable()