如何将 T 数组 (IEnumerable) 转换为 IQueryable使用 LINQ 进行处理?

发布于 2024-10-20 07:04:01 字数 341 浏览 2 评论 0原文

我正在开发一个使用 WCF 服务器的应用程序(使用新的测试版 Mindscape LightSpeed ORM)并在 ASP.NET MVC2 客户端上使用该服务。我的实体在客户端显示为 TIEnumerable 数组。我想在数据到达后对其进行一些很酷的事情,但 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半世晨晓 2024-10-27 07:04:01

好吧,我怀疑您正在考虑 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 use IQueryable<T> to use LINQ? Converting an IEnumerable<T> to IQueryable<T> won't give you most of the benefits of IQueryable<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 about IQueryable<T> useful. You'd need some way of representing the service as an IQueryable<T> though - and at that point you're beyond my WCF knowledge.

寂寞清仓 2024-10-27 07:04:01

尝试以下方法:
AsQueryable()

Try the following method:
AsQueryable()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文