一部の値がnull許容であるLINQでクエリを作成する方法を理解しようとしています。
次は私のテーブルです:
ID int
Key1 int
Key2 int?
Key3 int?
Value string
uniq = Key1+Key2+Key3+Value
次に、既存のレコードが一意の制約に基づいてすでに存在するかどうかを確認する必要があります。
私は次のことを試しました:
Object tmp = model.table.FirstOrDefault(row => row.Key1 == newItem.Key1 &&
(row.Key2.HasValue && newItem.Key2.HasValue && row.Key2.Value == newItem.Key2.Value) &&
(row.Key3.HasValue && newItem.Key3.HasValue && row.Key3.Value == newItem.Key3.Value) &&
row.Value == newItem.Value);
と:
Object tmp = model.table.FirstOrDefault(row => row.Key1 == newItem.Key1 &&
row.Key2 == newItem.Key2 &&
row.Key3 == newItem.Key3 &&
row.Value == newItem.Value);
しかし、キーの1つがヌルの場合、どちらも正しい結果を得ることができませんでした。
正しいLINQクエリを作成する方法はありますか?