我想把一个简单的LINQ语句翻译成一个url,我可以在我的web服务器上使用它来手动产生我的输出。所以我想要得到这样的东西
http://localhost:6627/WebSite15/NorthwindDataService.svc/Products?$orderby=ProductName
执行如下语句:
Products.Orderby(x => x.ProductName);
这可能吗?我的意思是,一个简单的数据服务可以开箱即用,但我不想用这个东西,因为我有特殊的要求。
我有一个非常类似的问题,我发现这个EntitySorter,它工作得很好…您也可以在这里看到类似的实现(查看投票较高的答案,而不是标记的答案)。
它可以让你做这样的事情:
IEntitySorter<Person> sorter = EntitySorter<Person>
.OrderBy("Address.City")
.ThenByDescending("Id");
编辑:顺便说一句,我有一个完全合理的理由使用它(实际上是在一个模拟的服务层中使用它,所以我不关心性能),但是值得注意的是,为了让软搜索工作,EntitySorter必须"绕你的a$$到你的肘部"。我认为这是微软想说的"我们不是故意让它变得简单的"……也就是说,考虑到它的功能,我认为EntitySorter是一个非常优雅的解决方案:)
我现在已经用ExpressionVisitor实现了这一点。