EF 4.3.1 を使用して一連のレコードを取得しようとしています。特定の列に NULL 値を持つすべてのレコードを取得する必要があります。
データベースをチェックしたところ、その列で多くの行がnullであり、列もnull可能です。EFは奇妙なことをしています。プロファイラーを見ると、次の SQL が生成されています。
SELECT
CAST(NULL AS int) AS [C1]
FROM ( SELECT 1 AS X ) AS [SingleRowTable1]
WHERE 1 = 0
エンティティ列が「int?」として宣言されています。
次の組み合わせを使用してみましたが、同じ結果が得られます。
dbset.Where(e=>e.MyNullableInt == null).ToList();
dbset.Where(e=>e.MyNullableInt.Equals(null)).ToList();
この奇妙な動作を渡すことができる唯一の方法は、完全なセットをロードし、変数を設定し、このステップの後に where を実行することです。これは、すべてのデータをロードするため、非常に非効率的です。
これを達成する方法はありますか?