1

Entity Framework 5 を使用しています。

以下は、正常に実行される私の SQL クエリです。

Select person.pk 
from person, job
Where 
person.jobId= job.pk 
and 
job.Description = 'CEO'

上記のクエリでテーブルと列の名前を変更しました。

上記のクエリを以下の LINQ に変換するとき:

from person in Context.Person
from job in Context.Job
where
  person.jobId== job.PK &&
  job.Description == "CEO"
select new {
  person.PK
};

しかし、上記のLINQは私に例外を与えています:

タイプ 'Models.Job' の定数値を作成できません。このコンテキストでは、プリミティブ型 (Int32、String、および Guid など) のみがサポートされます。

LINQ は十分にシンプルに見えますが、何が欠けているのかわかりません。

これは重複している可能性がありますが、これと同様の質問はすべて異なっており、いずれもこの問題に対処していません。

どんな助けでも大歓迎です。

4

1 に答える 1

1

SQL が結合を実行しているのに、Linq で結合を実行しないのはなぜですか?

また、フィールドが 1 つだけ必要な場合は、匿名型に投影する理由がわかりません。そのフィールドを選択するだけです (フィールドの型であるList<T>場所にマップされます)。TPK

これを試して:

from person in Context.Person
join job in Context.Job on person.jobID equals job.PK
where job.Description == "CEO"
select person.PK;
于 2013-05-29T15:34:18.270 に答える