私のエンティティには、タイプNewsItem
の null 許容外部キー プロパティがあります。LibraryID
int?
私の問題は、プロパティをクエリして、それを 以外の値と比較すると、null
例外が発生することです。
最初に私のコードは次のとおりでした:
int? lid = ...
var results = context.NewsItems
.Where(n => n.LibraryID == lid);
しかし、何があっても結果はまったく得られませんlid
。
だから、私は試しました:
var results = context.NewsItems
.Where(n => n.LibraryID.Equals(lid));
例外を与えます:
タイプ 'System.Object' の定数値を作成できません。このコンテキストでは、プリミティブ型または列挙型のみがサポートされています。
そして、私は試しました:
var results = context.NewsItems
.Where(n => lid.Equals(n.LibraryID));
そして得た:
タイプ 'System.Nullable`1' をタイプ 'System.Object' にキャストできません。LINQ to Entities は、EDM プリミティブ型または列挙型のキャストのみをサポートします。
この:
var results = context.NewsItems
.Where(n => object.Equals(lid, n.LibraryID));
最後の例外と同じ例外を与えます。
今、私は必死だったので、物事を複雑にしようとしました(たとえば、ここで提案されている他のフォーラムのように):
var results = context.NewsItems
.Where(n => (lid == null ? n.LibraryID == null : n.LibraryID == lid));
それでも同じ例外が発生します。
それで...簡単な回避策はありますか?