Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将LINQ查询转换为字符串,发送到远程服务器以使用Roslyn解析为表达式?_C#_.net_Linq_Dynamic Linq_Roslyn - Fatal编程技术网

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

C# 将LINQ查询转换为字符串,发送到远程服务器以使用Roslyn解析为表达式?,c#,.net,linq,dynamic-linq,roslyn,C#,.net,Linq,Dynamic Linq,Roslyn,我有一个数据源,比如IDataSource:IEnumerable 一个实现是查询纯XML数据,另一个实现是查询SQL数据库 我的数据源没有conrete类型,只针对简单的模式类型 在某些场景中,这些数据源在相同的运行时上下文中实例化,其他数据源通过网络访问 我无法使用LINQ查询数据源,我计划使用动态对象仅提取和解析作为实际查询一部分的成员值 当在相同的运行时上下文中运行时,这可以正常工作,但是当数据源位于远程服务器上的web服务之后时,这会失败,因为我无法以我所知道的任何方式将LINQ与we

我有一个数据源,比如IDataSource:IEnumerable

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

我的数据源没有conrete类型,只针对简单的模式类型

在某些场景中,这些数据源在相同的运行时上下文中实例化,其他数据源通过网络访问

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

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

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

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

我读过关于Roslyn项目的书,当时在想maybee可以用它来解决这个问题吗?有人知道更多吗


我也看过一些IQueryable,但我读过很多关于它的负面报道,所以也许我应该避免它。而且它是强类型的,不适合我的需要,因为我不想在数据服务器上使用任何具体类型。我也不知道如何在强类型的web服务上使用它?我遗漏了什么吗?

这听起来更像是能够序列化表达式树,但不一定是C字符串


确实如此。它甚至包括一个示例WCF服务和cient,可以使用IQueryable实现您想要的功能。

这听起来更像是您需要能够序列化表达式树,但不一定是作为C字符串


确实如此。它甚至包括一个示例WCF服务和cient,使用IQueryable可以完全满足您的需要。

Roslyn最终将为您提供获取字符串形式的LINQ表达式、解析它并对其求值的能力。但是,当前的公共CTP(2011年10月发布的CTP)不支持LINQ表达式。

Roslyn最终将为您提供以字符串形式获取LINQ表达式、对其进行解析和求值的功能。但是,当前的公共CTP(2011年10月发布的CTP)不支持LINQ表达式。

我想我现在找到了答案:

!


我怎么会错过那个!我以为它只用于实体框架…

我想我现在找到了答案:

!


我怎么会错过那个!我还以为这只是实体框架…

关于IQueryable,你读过哪些负面的东西?你能解释一下为什么你认为它是强类型的很重要吗?它的实现非常繁重。我还没有详细研究它,但我需要通过web服务进行查询,在web服务中我没有任何conrete数据类型。那么在这种情况下我如何使用IQueryable呢?为什么没有具体的数据类型呢?在使用web服务时,您当然可以使用IQueryable。您读过哪些关于IQueryable的负面信息?你能解释一下为什么你认为它是强类型的很重要吗?它的实现非常繁重。我还没有详细研究它,但我需要通过web服务进行查询,在web服务中我没有任何conrete数据类型。那么在这种情况下我如何使用IQueryable呢?为什么没有具体的数据类型呢?在使用web服务时,您当然可以使用它们。