我正在使用WCF服务器(使用新的Beta版Mindscape LightSpeed ORM)并在ASP.NET MVC2客户端上使用该服务。我的实体在客户端显示为T
或IEnumerable<T>
的数组。我想在数据到达后对数据做很酷的事情,但LINQ语法需要IQueryable<T>
。
我知道有一种方法可以从IEnumerable<T>
转换为IQueryable<T>
,但到目前为止我还没有运气。有人可以帮忙吗?
谢谢, 戴夫
答案 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()