问题标签 [dynamic-linq]
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.
linq - LINQ - 如何使用 NHibernate.LINQ 对多个条件进行部分搜索
我有一个搜索页面,用户可以在其中输入以逗号分隔的多个城市,我们需要获取在搜索条件中输入的城市的所有房地产。例如,用户将输入类似这样的内容
城市 = 达拉斯,奥斯汀
如果用户输入完整的城市名称,我的查询工作正常
var cityList = new List{"达拉斯", "奥斯汀"}; var 属性 = Reporsitory.AsQueryable .Where(x=> cityList.Contains(x.City)) .ToList();
但是,如果我只是输入 Dal,Aus 它不起作用。我怎样才能使这些部分搜索工作。动态 LINQ 是唯一的答案吗?谢谢!
linq - 用于针对标记化字符串构建 string.contains 的动态 Linq 查询的通用函数
我正在使用Expression.And
并Expression.Or
构建动态 linq 查询。当被查询的属性/字段是一个字符串,并且该字符串包含空格时,我想对空格上的字符串进行标记,并在标记上创建一个“And'd”子查询。
这是我以非通用方式的意思
我想做的是找到一种编写方法的方法,该方法足够通用,可以调用,例如:
我最终得到了相同的结果。以下是我所在的位置,但我不能Func
在 and 中使用 stringProp 访问器Expression
。我必须以某种方式将访问器表达式(字符串属性)与调用表达式(调用string.Contains
)结合起来
我也很想知道这一切是否看起来都是个坏主意。
c# - 动态选择和更新 LINQ 结果集中的列值
我有一个存在 LINQ 结果集的场景;我使用了以下查询
现在我想使用这个结果集并更新列的值。该列是通过字符串变量动态选择的。
我尝试使用的代码是:
请在这里帮助我了解如何实现这一目标。
c# - 让用户从 gui 向导构建动态表达式
我想构建一个 gui 面板/向导,我的应用程序的用户可以在其中使用强类型对象模型的属性构建自定义条件/表达式。 基本上是这样的。
该结构可以嵌套(LHS/RHS 可能包含其他表达式)并使用 or/and/foreach 操作数与其他表达式组合。
我希望能够检查每个子表达式的正确类型和值。理想情况下,最终查询应该是 linq 查询或表达式树。
我的目标是让用户设计自己的策略或简单的工作流程。
您建议使用哪种类型来处理表达式以及创建动态查询的解决方案?
我正在考虑将表达式表示为字符串,例如
person.DateOfBirth > 1970 && person.Country != Country.Germany
然后使用.Where
由动态 LINQ 库生成的扩展子句中的串联作为参数创建 linq 查询,如此处所述。
是否可以动态创建高级表达式,或者此解决方案有限制?
您建议什么替代解决方案?
c# - 构建可以对任何 linq 表进行操作的通用方法集
问题:我们广泛使用存储库模式来促进跨多个应用程序和功能子部分的数据存储(使用 LINQ 的 MS SQL)上的读/写操作。我们有一系列方法,它们都做类似的事情。
例如,我们有 ProcessAndSortXXXXXX 类的方法。
...和...
从代码中可以看出,它们都非常相似,直到您查看签名然后进入我们正在构建 ClassErrorEntry 和 ClassTimerLogEntry 实例的 return 语句。
我想构建一个实用方法,我将添加到所有存储库继承的基类中。
我希望能够传入可用于实例化对象的参数并将它们打包到返回的 IEnumerable 中。
我发现了ScottGu的这篇文章,这让我得到了我需要的大部分内容。它看起来像这样(来自文档中的示例):
不过,这就是我卡住的地方。我需要一个指针或建议,如何以通用方式传入 LINQ 表和 DataContext,以便构建动态查询。
如果我用伪代码模拟签名,我认为它看起来像这样:
我意识到,当我们弄清楚这一点时,完成的签名可能看起来有所不同。
谢谢!
更新!
我现在有可以生成匿名类型但在转换为具体类型时失败的代码。
下面是调用这个方法的代码:
最后一行TestContext.WriteLine(result.ToList().Count.ToString());
抛出异常System.InvalidOperationException: No coercion operator is defined between types 'DynamicClass1' and 'Utilities.Logging.ClassErrorEntry'.
这段代码虽然失败了:
这会因解析错误而失败。Test method eModal.Repositories.Test.RepositoryBaseTest.TestConcreteClass threw exception:
System.Linq.Dynamic.ParseException: '(' expected, found 'ClassErrorEntry' ('Identifier') at char 19 in 'new ClassErrorEntry(Id) { ChassisAuthId = ChassisAuthId, Code = Code, Message = Message, Severity = Severity, Target = Target }'
我不确定字符位置是否可疑,因为第 19 个字符位置是 a(
并且传递给 Validate 方法的类型指示位置为 4 或第一个'C'
.
c# - 在 WCF 中动态创建的类作为 DataContract
有没有办法DynamicClass
从 WCF 方法返回一个类型的对象数组?
我在我的 WCF 服务中使用动态 Linq 库,以便根据select
客户的请求来处理数据库表的列。客户端代码应如下所示:
Feature是我只想从中获取select
两列的表的名称,即。FeatureName和FeatureId,满足where
子句中的条件。
在这里,问题是查询在服务器上运行良好,但 WCF 无法将其发送回客户端。我的猜测是未声明仅定义选定列的动态创建的类DataContract
,因此 WCF 无法使用它。
那么这个问题有什么解决办法吗?
或者有什么替代方案?目标是,我不想返回数据库表的所有列,因为客户端不需要所有列。因此,我认为将所有列发送回客户端没有任何意义,客户端无论如何都会丢弃它。
c# - 在 Dynamic Linq 中使用 Any() 和 Count()
我正在尝试编写动态 Linq 库查询以在条件下获取记录,订单数大于 3 且 ShipVia 字段等于 2 的客户。
以下是我尝试过的语法。
和
但两者都不起作用。在第二个查询中,Any 返回 true,因此它不适用于 Count。建议我一种方法来实现这一点。
vb.net - LINQ。使用动态查询减少代码
我使用以下代码用在 LINQ 查询中找到的信息填充 Table1 字典。
我应该对上面的函数进行哪些更改以填充任何给定的 TableXXX 字典?你看,我不想使用下面的函数来填充 Table2 字典。
c# - 在运行时动态附加多个 linq 表达式
我有两个类似的方法,它们采用标准对象(具有属性列表的哑对象),在该标准对象上调用“CreateExpression”方法,然后使用返回的表达式来过滤结果。
我的一个例子只有一个标准的论点,它没有问题。我的第二种方法采用 aList<Criteria>
然后尝试遍历列表中的每个条件,并为其生成表达式,然后将其“和”到前一个表达式。最终结果应该是一个大表达式,然后我可以在我的 linq 查询中使用它。
但是,这第二种方法不起作用。当我使用调试器时,我可以在内部看到谓词及其主体和 lambda 表达式,但是当它到达 SQL 服务器时,它发送的只是一个完全没有 where 子句的 select 语句。
这是有效的方法(使用一个标准对象):
这是一个不起作用的:
我正在使用Predicate Builder来生成初始表达式。我不相信这些方法有问题,因为它们适用于第一种(单一)方法。
有谁知道这里发生了什么?
编辑 我忘了说后端是实体框架。