有人评估过这个 codeplex 项目吗?
使用时是否有任何限制(或错误或例外)queryBuilder.Query
?
它会节省我的大部分时间,而不是使用其他 LINQ 变体。
我以前没有见过这个项目,但它看起来只是使用 CodeDOM 将 C# 查询编译成动态程序集。这是一篇关于它如何工作的博客文章:
http://kenanbek.com/site/post/dynamic-linq-queries-build-linq-queries-from-text-at-runtime/
如果它使用动态编译,那么它可能没有太多限制。当然,它只能访问您传递给LinqTextQueryBuilder.SetSource()
方法的对象之外的项目。
我在我从事的一个项目中使用了类似的东西,称为 Dynamic Linq,但它更多地用于解析 where 子句表达式等,而不是整个查询。它的工作方式略有不同,因为它将类 C# 表达式直接解析为表达式树,而不是使用 CodeDOM 和动态程序集作为中介。因此,它可能会更快一些,但更有限。
根据我的经验,LINQKit 的 AsExpandable 和 PredicateBuilder 部分也非常有用,具体取决于场景。