Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
如何动态构建LINQ_Linq_Dynamic_Operators - Fatal编程技术网

如何动态构建LINQ

如何动态构建LINQ,linq,dynamic,operators,Linq,Dynamic,Operators,我有一个场景,其中我有自定义配置的列名、关联的运算符,如=between等,然后是关联的值 我试图确定是否可以使用动态(字符串)where子句构建LINQ查询 我注意到了谓词或Preditcate之类的东西,但这并不是我要说的 有什么建议吗?实际上,C#VS2008示例附带了一个来自Microsoft的特定库(System.Linq.Dynamic)。从 该库包含在上述下载示例的\LinqSamples\DynamicQuery目录中 有关广泛使用的示例,请查看本页:如果您谈论的是字符串Wher

我有一个场景,其中我有自定义配置的列名、关联的运算符,如<>=between等,然后是关联的值

我试图确定是否可以使用动态(字符串)where子句构建LINQ查询

我注意到了谓词或Preditcate之类的东西,但这并不是我要说的


有什么建议吗?

实际上,C#VS2008示例附带了一个来自Microsoft的特定库(System.Linq.Dynamic)。从

该库包含在上述下载示例的\LinqSamples\DynamicQuery目录中


有关广泛使用的示例,请查看本页:

如果您谈论的是字符串
Where
子句(而不是自己构建表达式等),那么(在3.5示例中,IIRC)就足够了

请注意,下面的示例用于数据库使用;但是,通过对内存中的数据调用
.AsQueryable()
,可以将它与LINQ to对象一起使用


您还可以使用表达式树创建动态查询。见:


此问题可能重复“然而动态linq仅适用于IQueryable而不适用于IEnumerable”-请参阅我回复中关于AsQueryable的说明…好的,System.linq.Dynamic乍一看与我想要的完全一样。然而,动态linq只适用于IQueryable而不适用于IEnumerable。虽然Alex是第一个使用动态LINQ库的人,但是缺少的部分是由Marc提出的(很抱歉错过了)。您需要.AsQueryAble()扩展方法才能处理集合。这是一种比使用DynamicIQ更安全的方法,DynamicIQ似乎非常容易受到注入攻击。