我正在寻找一种从字符串构建 IQueryable 查询的方法

I'm looking for a way to build a IQueryable query from a string

我想从一个字符串构建一个 IQueryable 查询(它将来自 table)。我想要 IQueryable 的原因是我想使用 OrderBy、Take 和 Skip 来进行分页。我将 Entity Framework 与 DBContext 一起使用,所以我查看了实体 SQL,但它看起来将查询限制为 class。

我想做的是:

string sql = GetQueryFromDatabase();
IQueryable q = PerformMagicToMakeStringIQueryable(sql);
q = q.OrderBy(somefield).Skip(5).Take(10);

从那里我很好,我知道如何找出查询中的字段并执行我需要的操作。

想法?

谢谢,

约翰

有一个叫做 DynamicLinq 的东西你可以使用。

有很多不同的版本,因为 MS 将原始版本作为源代码发布,并且已经被修改了无数次:

这是一个带有文档的:

http://dynamiclinq.azurewebsites.net/

这是其他的:

https://www.nuget.org/packages?q=dynamic+linq