转换为表达式
本文关键字:表达式 转换 | 更新日期: 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));