Entity Framework 4 Single() と First() と FirstOrDefault() の比較 質問する

Entity Framework 4 Single() と First() と FirstOrDefault() の比較 質問する

単一のアイテムをクエリするさまざまな方法を比較し、それぞれの方法をいつ使用するかを見つけるのに、非常に苦労しています。

これらすべてを比較したリンク、または、なぜ他のものよりもこれらを使用するのかを簡単に説明したリンクを持っている人はいませんか? 私が知らない演算子はまだ他にもありますか?

ありがとう。

ベストアンサー1

さまざまな方法の概要は次のとおりです。

  • Find() - 主キーでアイテムを取得する場合。アイテムが見つからない場合は null を返します。データベースにアクセスする前にコンテキストを検索します (Yaron がコメントで指摘しているように)。これは、同じコンテキストが有効な間に同じエンティティを複数回取得する必要がある場合に、重要な効率要因になる可能性があります。

  • Single() - クエリによって正確に 1 つの項目が返されることが予想される場合。クエリによって正確に 1 つの項目が返されない場合は、例外がスローされます。

  • SingleOrDefault() - クエリによって 0 個または 1 個のアイテムが返されることが予想される場合 (つまり、指定されたキーを持つアイテムが存在するかどうか不明な場合)。クエリによって 0 個または 1 個のアイテムが返されない場合は、例外がスローされます。

  • First() - クエリによって 1 つ以上の項目が返されることが予想されるが、コード内の最初の項目のみにアクセスする場合 (ここではクエリの順序が重要になる場合があります)。クエリが少なくとも 1 つの項目を返さない場合は、例外がスローされます。

  • FirstOrDefault() - クエリによって 0 個以上の項目が返されることが予想されるが、コードでは最初の項目のみにアクセスしたい場合 (つまり、指定されたキーを持つ項目が存在するかどうかわからない場合)

おすすめ記事