我有两个表(对于Ex:TableEmployee,TableSal)没有任何关系, 我必须使用这两个表来编写谓词,
TableEmployees:此表包含Name,DepartmentId列
TableSal:此表包含Name,DepartmentId,TotalSal
问题: 我必须为“TableSal匹配中的DepartmentId与TableEmployees中的任何DepartmentId编写谓词”
我已尝试过这些方法,但却出现了错误,
方法一:
predicate = predicate.And(
n => context.Tbl_Sal
.Where(d => d.DepartmentId.HasValue)
.Select(i => i.DepartmentId)
.Equals(n.DepartmentId)
);
方法2:
predicate = predicate.And(
n => context.Tbl_Sal
.Where(d => d.DepartmentId.HasValue)
.ToList().Find(d => d.DepartmentId == n.DepartmentId) != null);
我如何为这种情况编写谓词....
答案 0 :(得分:0)
我想知道你为什么要处理原始表达式。使用linq,你可以这样做:
var query = context.TableSal
.Where(d => context.TableEmployees.Where(e => e.DepartmentId.HasValue)
.Select(e => e.DepartmentId)
.Contains(d.DepartmentId));
为您提供TableSal
DepartmentId
DepartmentId
中所有TableEmployees
个{{1}}的记录。