0

我有两个没有关系的表(例如:TableEmployee,TableSal),我必须使用这两个表编写谓词,

TableEmployees:此表包含 Name、DepartmentId 列

TableSal:此表包含 Name、DepartmentId、TotalSal

问题:我必须为“TableSal 中的 DepartmentId 是否与 TableEmployees 中的任何 DepartmentId 匹配”编写谓词

我已经尝试了这些方法,但遇到了错误,

方法1:

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);

我怎么能写谓词....对于这种情况....

4

1 回答 1

0

我想知道你为什么要处理原始表达式。使用 linq,您可以执行以下操作:

var query = context.TableSal
           .Where(d => context.TableEmployees.Where(e => e.DepartmentId.HasValue)
                      .Select(e => e.DepartmentId)
                      .Contains(d.DepartmentId));

它为您提供了s 中的所有TableSal记录。DepartmentIdDepartmentIdTableEmployees

于 2013-03-13T18:17:06.557 回答