第一个查询返回一个字符串列表,我将它们传递到另一个表中以查找相应的项目,但没有任何反应。没有错误消息或什么也没有
var classIds = _contextSpecRepo.Get(x => x.cId.Equals(cId)).Select(x => x.classNames).Distinct().ToList();
// issue happens in the following query
var classes= Repository.Get(x => x.Id.Equals(classIds)).ToList();
Run Code Online (Sandbox Code Playgroud)
对 的调用Equals(采用object)隐藏了问题:您正在将单个值Id与 s 列表进行比较Id,而不是检查 s 是否Id存在于集合中。这可以编译,但不会产生任何结果。
以下是解决方法:
var classes= Repository.Get(x => classIds.Any(y => y == x.Id)).ToList();
Run Code Online (Sandbox Code Playgroud)
或者
var classes= Repository.Get(x => classIds.Contains(x.Id)).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
720 次 |
| 最近记录: |