转换为表达式

本文关键字:表达式 转换 | 更新日期: 2023-09-27 17:54:41

如何将此方法转换为可以在linq中使用的表达式:

    public bool IsMatch(long additionId)
    {
        return AdditionsPrices.Any(x => x.AdditionId == additionId);
    }

谢谢!

转换为表达式

解决方案:

public Expression<Func<Addition, bool>> IsMatch(long additionId)
    {
        return a => a.AdditionsPrices.Any(x => x.AdditionId == additionId);
    }

为什么不直接使用Contains()查询-从AdditionsPrices中提取List<long>:

List<long> additionIds = AdditionsPrices.Select( x => x.AdditionId)
                                        .ToList();

,然后在EF Contains()查询中使用:

var results = context.SomeEntitySet
                     .Where(x => additionIds.Contains(x.AdditionId));