gpt4 book ai didi

c# - 如何制作包含对 Any() 的调用的 System.Linq.Expressions.Expression 对象

转载 作者:太空狗 更新时间:2023-10-30 00:03:25 24 4
gpt4 key购买 nike

我想动态生成一个 linq.expressions.expression 语句,我可以将其用作过滤器。

这是我想转换为表达式的示例 Linq 查询:

ctx.customer.where(c=>ctx.Invoice.Any(i=>i.customerId == c.id));

这是我的尝试

using System.Linq.Expressions;
var c = Expression.parameter(typeof(Customer),"c");
var i = Expression.parameter(typeof(Invoice),"i");

var rightPart= Expression.Equal(
Expression.propertyorField(i,"customerId"), Expression.propertyorfield(c,"id")

请协助。

最佳答案

当我需要手动创建 linq 表达式时,我只需让 .Net 从 lambda 为我创建这样的表达式,然后我就可以探索它的结构。例如在调试下运行

Expression<Func<TestObject, bool>> expression = t => t.Invoice.Any(i => i.CustomerId == t.Id);

并检查表达式变量。

关于c# - 如何制作包含对 Any() 的调用的 System.Linq.Expressions.Expression 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9891815/

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