将LINQ语句转换为通常的数据服务URL

本文关键字:数据 服务 URL LINQ 语句 转换 | 更新日期: 2023-09-27 17:49:42

我想把一个简单的LINQ语句翻译成一个url,我可以在我的web服务器上使用它来手动产生我的输出。所以我想要得到这样的东西

http://localhost:6627/WebSite15/NorthwindDataService.svc/Products?$orderby=ProductName

执行如下语句:

Products.Orderby(x => x.ProductName);

这可能吗?我的意思是,一个简单的数据服务可以开箱即用,但我不想用这个东西,因为我有特殊的要求。

将LINQ语句转换为通常的数据服务URL

我有一个非常类似的问题,我发现这个EntitySorter,它工作得很好…您也可以在这里看到类似的实现(查看投票较高的答案,而不是标记的答案)。

它可以让你做这样的事情:

IEntitySorter<Person> sorter = EntitySorter<Person>
    .OrderBy("Address.City")
    .ThenByDescending("Id");

编辑:顺便说一句,我有一个完全合理的理由使用它(实际上是在一个模拟的服务层中使用它,所以我不关心性能),但是值得注意的是,为了让软搜索工作,EntitySorter必须"绕你的a$$到你的肘部"。我认为这是微软想说的"我们不是故意让它变得简单的"……也就是说,考虑到它的功能,我认为EntitySorter是一个非常优雅的解决方案:)

我现在已经用ExpressionVisitor实现了这一点。