我有一个数据源,例如IDataSource : IEnumerable<IDynamicObject>
一种实现是查询纯 XML 数据,另一种实现是查询 SQL 数据库。
我的数据源没有具体的类型,并且仅适用于简单的模式类型。
在某些情况下,这些数据源在相同的运行时上下文中实例化,而其他它们通过网络访问。
我无法使用 LINQ 查询我的数据源,我计划使用动态对象仅提取和解析作为实际查询一部分的成员值。
这在相同的运行时上下文中运行时效果很好,但是当数据源位于远程服务器上的 Web 服务后面时,这会失败,因为我无法以我所知道的任何方式将 LINQ 与 Web 服务一起使用。
所以我一直在寻找一种将我的 LINQ 查询格式化为字符串并将其发送到服务器的方法,然后将其解析回一个表达式并在新的上下文中执行它。
我能找到的两种解析表达式的方法是Dynamic LINQ和FLEE。我只是简单地看了它们,但似乎没有一个能够将表达式格式化为字符串并对其进行解析?
我已经阅读了有关 Roslyn 项目的信息,并在想也许它可以用来解决这个问题?有人知道更多吗?
我也看过一些,IQueryable<TData>
但我读过很多关于它的负面消息,所以也许我应该避免它。此外,它是强类型的,不符合我的需求,因为我不希望数据服务器上有任何具体类型。我也看不到如何通过网络服务使用强类型?我错过了什么吗?