【发布时间】:2018-08-30 22:00:11
【问题描述】:
我有一个接收字符串数组的方法。然后我把它变成一个整数列表。最后,我创建了一个 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 是一个整数,我正在检查整数列表是否包含该数字。我不明白问题是什么。
提前致谢。
【问题讨论】:
-
不应该
eqp_equipment_location_role_id返回一个bool(因为它是一个Any),但顾名思义它是一个int,或者至少不是一个bool。 -
此外,
Contains检查 元素,而不是集合,或bool本身(是的,bool可以元素),但这可能不是你想要的。 -
现在解决这个问题很困难。
eqp_ast_equipment_to_location是什么?你能分享你的(相关的)类定义吗?