我想允许我们的一些业务分析师在适用的情况下用linq而不是SQL编写。企业永远不会允许安装linqpad,那么我将从哪里开始学习如何在vs2008项目中允许简单的linq查询或表达式?
.net的eval()函数是否有某种类型可编译并运行linq表达式?
答案 0 :(得分:3)
查看动态执行代码的this tutorial。它非常完整,如果你愿意,你可以简单地限制使用Linq名称空间和你的DAL。您还可以添加检查以确保它们(例如)不执行多个语句以及高级数据可视化。
答案 1 :(得分:2)
我假设你的意思是javascript风格评估?遗憾的是,在BCL,C#或VB中没有eval样式函数可以提供您正在寻找的行为。
答案 2 :(得分:1)
CheckOut http://linqcompiler.codeplex.com/
答案 3 :(得分:0)
不直接,但您可以构建后期绑定表达式并调用它们。不同之处在于您必须实现自己的表达式构建器或DSL +解析器。我只需要支持WHERE子句,所以我用XML序列化实现了一个Predicate对象,所以我会有一个人类可读的持久性格式。如果你想要更像SQL的东西你可以使用Scott Gu的动态LINQ查询库,它将解析关键表达式类型的LINQ语法谓词(Where,OrderBy,Select,其他一些)。如果您不需要完整的LINQ语法(即您可以分隔每个表达式谓词),那么您可以直接使用它。如果你需要一个完整的LINQ语法,那么你将不得不添加一些解析,但它实际上只是找到关键字 - 谓词对并动态执行它们。