gpt4 book ai didi

c# - 我可以在 C# 中动态生成 linq 表达式吗?

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:46 25 4
gpt4 key购买 nike

我目前有一 block 看起来像这样的 Linq ;

List<dynamic> childrenToBeRemoved = this.ItemsSource.Where(o => o.ParentID == "1234").ToList();

其中 ItemsSource 是动态的 ObservableCollection。

这工作正常,但我遇到的问题是 ParentID 是一个可以变化的属性。例如。它可以命名为 ParentPkey 或 ParentKey 等。

我可以创建一个表达式来指定我想在比较中使用的属性吗?

我试过使用动态 linq,但它不能使用动态集合,但可以很好地处理 pocos 集合。

谢谢...

最佳答案

查询是否是动态 linq 应该无关紧要

Expression<Func<Entity, int>> predicate = x => x.Id == myvalue;
from entity in _context.Entities.Where(predicate)
select entity;

查看 LinkKit 的 PredicateBuilder @ http://www.albahari.com/nutshell/linqkit.aspx那里也有足够的例子

将表达式转换为相应 sql 的责任在于 linq 提供程序,因此请确保您使用的提供程序支持相关方面

关于c# - 我可以在 C# 中动态生成 linq 表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10497801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com