问题标签 [system.linq.dynamic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
11982 浏览

c# - System.Linq.Dynamic 和 DateTime

我正在使用 System.Linq.Dynamic 从 .Net MVC 1.0 中的 ajax 调用中自定义 where 子句。

它适用于字符串、int 等,但不适用于 DateTime,我得到异常无法将 String 与 DateTime 进行比较。非常简单的测试代码是

items = items.Where(string.Format(@" {0} > {1}{2}{1} ", searchField, delimiter, searchString));

例如,其中 searchField 将是 start_date 并且数据类型是 DateTime,分隔符是 "(也没有尝试过),并且 searchString 将是 01-Jan-2009(也尝试过 01/01/2009)并且 items 是来自的 IQueryable LinqToSql。

有没有办法在动态 where 中指定数据类型,或者有更好的方法。它目前已经在使用一些反射来确定需要什么类型的分隔符。

0 投票
2 回答
57 浏览

c# - 如何在 System.Linq.Dynamic 中编写生成 LIKE T-SQL 语句的语句

我正在使用System.Linq.Dynamic并且在大多数情况下效果都很好。但是我试图得到一个会在 T-SQL 中 StartsWith生成类似的东西。Description LIKE 'test%'

我似乎没有找到,并且文档很少,正如我注意到的那样,在我的代码中编写哪个语句以传递给动态库的 Where 方法以生成该LIKE语句。

我已经尝试过但对我没有效果的事情:

但是没有任何东西会产生我所追求的 LIKE 语句。

0 投票
0 回答
100 浏览

c# - System.Linq.Dynamic:如何保证 Parse 函数中的参数顺序?

在下面的代码中,我成功地在 C# 中使用 Microsoft 的System.Linq.Dynamic来评估类似于 Javascript 的字符串表达式eval()。但是,我无法弄清楚在调用新函数时如何保证参数名称和相应的值匹配。 "SKU + \" \" + Name"可以1234 ColaCola 1234. 我有几十个参数。

System.Dynamic.Linq 的Parse方法用于Dictionary<string,object>在内部保存参数,这是我的问题,因为 Dictionary 不保证像数组和列表这样的顺序。 我假设因为 Microsoft 选择使用 Dictionary,所以必须对下面的代码进行一些简单的修复,以确保参数值匹配。 在 LinqPad 中输入了代码。

命名参数是否可能像Name: "Cola", SKU: "1234"?是否有一些数据类型或技术可以用来保证参数名称和值匹配?这是否需要更改 Microsoft 的代码来替换 Dictionary?

以下是上述和 System.Linq.Dynamic 的用法:

0 投票
2 回答
440 浏览

c# - where 子句中的动态 linq 反斜杠

我使用 System.Linq.Dynamic 来查询具有动态“where”表达式的实体。我正在查询具有字符串类型属性“newValue”的对象。示例值为:“{\"ProcessId\":764, \"ProcessLength\":1000}"。我不能使用 == 因为我想找到属性包含“ProcessId:764”的所有命中,而不管字符串的其余部分。问题是,存储的字符串包含转义符号“\”和双引号,我无法弄清楚它到底应该是什么样的......

dbContext.Processes.Where("@newValue.Contains(\"ProcessId\":764\")")带来错误,但dbContext.Processes.Where("@newValue.Contains(\":764\")")可以正常工作。我想它一定是我的查询中带有反斜杠或双引号的东西,但我自己无法弄清楚..

0 投票
1 回答
100 浏览

c# - 动态 Linq 中的按位排序

我需要能够在动态 linq 中执行基于字符串的按位 .OrderBy 。

对比

这甚至可能吗?我在下载 (CSharpSamples.zip\LinqSamples\DynamicQuery) 中没有看到任何按位运算符的示例。我什么都做不了,也找不到任何例子。帮助!

0 投票
1 回答
892 浏览

c# - Provider.CreateQuery 上的 Linq 异常

给定这个类:

以下列表:

我尝试动态查询列表的这段代码(请注意,字符串query可以包含任何内容,例如Take, Select,OrderBy等)。

我想知道我做错了什么,Provider.CreateQuery导致“参数表达式无效”异常?

0 投票
2 回答
1142 浏览

c# - 如何使用 LINQ 从动态列表中选择特定字段

我试图从动态对象中获取一些特定字段,它实际上是任何类的列表,这个类包含这些字段中的各种字段我想使用 LINQ 选择一些特定字段,我想选择的字段也在传递由用户。下面是我尝试使用 System.Linq.Dynamic 的代码。

0 投票
0 回答
609 浏览

entity-framework - 无法加载文件或程序集 System.Linq.Dynamic.Core 版本 = 1.0.15.0

在当前 Asp.net core 1.1 项目中从 nuget 添加 System.Linq.Dynamic.Core Version=1.0.15.0。在库中添加了所需的方法,但在调用方法时抛出错误为“无法加载文件或程序集'System.Linq.Dynamic.Core,版本 = 1.0.15.0,文化 = 中性,PublicKeyToken = 0f07ec44de6ac832'。系统找不到指定文件"

尝试恢复包但没有用

0 投票
1 回答
47 浏览

c# - 实体框架从 ENTIRE 列获取数据

我有一个 api 调用 getUser ,它从数据库中的指定列返回所有信息,但我想排除一些东西;电话号码、电子邮件等

尝试摆弄 LINQ,更改 modelBuilder,更改 optionBuilder

已查找任何 SQL 语句“Select * from”但一无所获

删除我的 UserModel 中的东西确实有效,但这是一种丑陋的做法。

预期指定要包含(或不包含)哪些数据,但除非我在 DB 将值设置为“null”,否则我会得到所有数据。

0 投票
2 回答
626 浏览

c# - Linq.Dynamic FirstOrDefault() 嵌套在 OrderBy

我有以下 Linq 语句,它工作得很好:

现在我试图通过使用来自 Linq.Dynamic 的基于字符串的语法使其动态化:

但它抛出异常:

“不存在适用的聚合方法‘FirstOrDefault’”

它必须是动态的,以便它接受其他名称而不是“MATERIAL_TXT”。

我错过了什么?