c# - 将 LINQ 查询转换为字符串,发送到远程服务器以使用 Roslyn 解析为表达式?

标签 c# .net linq dynamic-linq roslyn

我有一个数据源,例如 IDataSource : IEnumerable<IDynamicObject>

一个实现是查询纯 XML 数据,另一个是查询 SQL 数据库。

我的数据源没有具体类型,只针对简单的模式类型工作。

在某些情况下,这些数据源在相同的运行时上下文中实例化,而在其他情况下,它们通过网络访问。

我无法使用 LINQ 查询我的数据源,我计划使用动态对象来仅提取和解析作为实际查询一部分的成员值。

这在相同的运行时上下文中运行时工作正常,但是当数据源位于远程服务器上的 Web 服务后面时,这会失败,因为我无法以我所知道的任何方式将 LINQ 与 Web 服务一起使用。

所以我一直在寻找一种方法,将我的 LINQ 查询格式化为字符串并将其发送到服务器,然后将其解析回表达式并在新的上下文中执行它。

我能找到的两种解析表达式的方法是 Dynamic LINQFLEE .我只简单地看过它们,但它们似乎都无法将表达式格式化为字符串并对其进行解析?

我已经阅读了有关 Roslyn 项目的信息,并在想也许它可以用于解决这个问题?有人知道更多吗?

我看过一些 IQueryable<TData>也一样,但我读过很多关于它的负面信息,所以也许我应该避免使用它。而且它是强类型的,不符合我的需要,因为我不希望数据服务器上有任何具体类型。我也看不出这是如何在网络服务上使用的,是强类型的吗?我错过了什么吗?

最佳答案

Roslyn 最终将使您能够采用字符串形式的 LINQ 表达式,对其进行解析和计算。但是,当前公开的 CTP(2011 年 10 月发布的)不支持 LINQ 表达式。

关于c# - 将 LINQ 查询转换为字符串,发送到远程服务器以使用 Roslyn 解析为表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9647983/

相关文章:

c# - 如何在 C# 中使用 boolean 值

c# - 如何获取 Gmail 联系人?

.net - 如何模块化powershell脚本

c# - SQL Server 2016中列加密时如何查询数据

javascript - 在 Angular 中调用 $post 时如何使用 MVC 重定向

javascript - 当字符串通过javascript中的encodeURIComponent通信时,将字符串解析为原始形式

c# - WPF 全局异常处理程序

c# - 根据存储的时区修改 ASP.NET MVC C# 中的日期

c# - 使用 Entity Framework/LINQ,您可以一劳永逸地定义一个默认对象吗?

c# - 使用 Linq 生成要从另一个集合中删除的事物的集合