次のコードのAny
機能が失敗する理由はありますか?LINQ失敗していますか?
var orders = db.Order.Where(order => order.Item.Any());
foreach (var order in orders)
{
var first = order.Item.First(); // NullReferenceException thrown here: order.Item == null
}
たぶん私は単にここで何かを誤解していますが、それは私には思えるorder.Item
による以前のAny
ステートメントにnullになることはありません。
編集:私は式が評価され、そこToList
を置くことによって延期されていないことを確認した場合、私は原因も私をバッフルなしのアイテムを持っていないorder.Item
配列に別の例外を取得:
var orders = db.Order.Where(order => order.Item.Any()).ToList();
foreach (var order in orders)
{
var first = order.Item.First(); // System.InvalidOperationException thrown here: order.Item.Count == 0
}
「order.Item'の種類は? –
私のモデルの 'Item'テーブルに由来する' Item'です。注文は0からnまでです。 –
あなたはEntityFrameworkを使用していますか? –