私は(簡略化された)のようなlinqクエリ関数を持っています:
public IList<Document> ListDocuments(int? parentID)
{
return (
from doc in dbContext.Documents
where doc.ParentID == parentID
select new Document
{
ID = doc.ID,
ParentID = doc.ParentID,
Name = doc.SomeOtherVar
}).ToList();
}
なんらかの理由で、parentID(現在はnullのparentIDを持つデータのみ)にnullを渡しても、結果が得られません。
このクエリをコピーしてLinqPadに貼り付け、次を実行します。
from doc in dbContext.Documents
where doc.ParentID == null
select doc
期待どおりの結果セットが返されます...
実際のクエリは結合と他の結合を残しましたが、私はそれらを削除してテストし、同じ結果を得たので、結合は何にも影響を与えません。アプリとLinqPadはどちらも同じDBに接続されています。
編集: applictionクエリで「null」だけでテストされ、期待どおりの結果が返されるため、問題はnullとint?を使用しています。同じ問題を抱えている他の人がこのスレッドを見つけるのに役立つように、質問を更新しました。