我有一个接收字符串数组的方法。然后,我将其转换为整数列表。最后,我要创建一个IQueryable,在其中我要返回与关联表中的ID匹配的结果。
public myMethod(string[] locationRoleids){
IQueryable<equipment> result = DbContext.equipment.Where(e => !e.deleted);
List<int> locationRoleIdList = locationRoleIds.Select(id => int.Parse(id)).ToList();
result = result.Where(e => locationRoleIdList.Contains(e.eqp_ast_equipment_to_location.Any(el => el.eqp_equipment_location_role_id)));
我在
上遇到错误el.eqp_equipment_location_role_id
声明“无法将lambda表达式转换为预期的委托类型,因为该块中的某些返回类型不能隐式转换为委托的返回类型”
eqp_equipment_location_role_id是一个整数,我正在检查一个整数列表是否包含该数字。我不明白问题是什么。
先谢谢了。
答案 0 :(得分:1)
Contains
取值而不是lambda。因此,e.eqp_ast_equipment_to_location.Any(el => el.eqp_equipment_location_role_id)
不是int
类型的有效项目。
也许:
result = result.Where(e => e.eqp_ast_equipment_to_location.Any(el => locationRoleIdList.Contains(el.eqp_equipment_location_role_id)));
离预期的目标更近吗?