0

関係のない2つのテーブル(Ex:TableEmployee、TableSalの場合)があり、これら2つのテーブルを使用して述語を作成する必要があります。

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

これにより、のにあるすべてのTableSalレコードが得られます。DepartmentIdDepartmentIdTableEmployees

于 2013-03-13T18:17:06.557 に答える