gpt4 book ai didi

c# - 如何使用 linq dynamic 过滤子集合

转载 作者:太空狗 更新时间:2023-10-30 01:32:09 25 4
gpt4 key购买 nike

我正在尝试根据用户请求过滤结果。例如,您有 ordersorder detailsproducts 是子集合。

当用户想要按产品过滤时,由于 'ICollection1' 类型中不存在属性或字段 'PRODUCTS' 而出现错误

我正在这样写我的查询。

var orders = _uow.Repository<ORDERS>()
.Query()
.Where("PRODUCTS.HEADING.ToLower().Contains(\"foo\")")
.Include("ORDER_DETAILS")
.Include("ORDER_DETAILS.PRODUCTS")
.ToList();

所以不可能像这样过滤子集合?或者有什么过滤的方法?

谢谢。

最佳答案

根据您命名类/属性的方式,很难猜测哪个是单个对象,哪个是集合属性。

如果ORDERS类属性ORDER_DETAILSORDER_DETAILS类的集合,而ORDER_DETAILS类属性 PRODUCTS 是具有字符串属性 HEADINGSPRODUCTS 类的单个对象,那么下面应该可以解决问题:

.Where("ORDER_DETAILS.Any(PRODUCTS.HEADING.ToLower().Contains(\"foo\"))")

基本和跳过lambda参数的静态查询一样

.Where(o => o.ORDER_DETAILS.Any(d => d.PRODUCTS.HEADING.ToLower().Contains("foo")))

关于c# - 如何使用 linq dynamic 过滤子集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38118300/

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