0

次のコードを実行しようとするたびに

        employees = from e in this.entities.employees select e;
        var ett = (from e in employees where 
                      (e.salaries.ToList().Where(i => i.to_date.Year == 9999).First().salary1 > TT) 
                  select e);

        var etf = (from e in employees
                  where
                      (e.salaries.ToList().Where(i => i.to_date.Year == 9999).First().salary1 < TT &&
                      e.salaries.ToList().Where(i => i.to_date.Year == 9999).First().salary1 > TF)
                  select e);

        foreach (employee e in ett)
        {
            this.members.memberships.AddObject(new membership
            {
                FirstName = e.first_name,
                LastName = e.last_name,
                MembershipClass = "regular",
                VerificationCode = "abc1234"
            });
        }

        foreach (employee e in etf)
        {
            this.members.memberships.AddObject(new membership
            {
                FirstName = e.first_name,
                LastName = e.last_name,
                MembershipClass = "regular",
                VerificationCode = "abc1234"
            });
        }

次のエラーが表示されます。

LINQ to Entities does not recognize the method 'System.Collections.Generic.List`1[app.salary] ToList[salary](System.Collections.Generic.IEnumerable`1[app.salary])' method, and this method cannot be translated into a store expression.

Employee クラスは、給与との 1 対多の関係を維持します。私が読む限り、エラーは .ToList() メソッド呼び出しを参照していますが、それらを削除しても問題は解決しません。

編集: コードを追加しました。

4

1 に答える 1