linq to entity を使用して個別のレコードを取得する 質問する

linq to entity を使用して個別のレコードを取得する 質問する

こんにちは。私はアプリケーションで linq to entity を使用しています。1 つの列値「名前」に基づいて個別のレコードを取得する必要があります。

次のような表があります。

(User)
ID
Name
Country
DateCreated

選択する必要がありますこのすべてのアイテムただし、名前 (一意) に基づいて一意になります。linq を使用して実現することは可能ですか。可能であれば、方法を教えてください。

var items = (from i in user select new  {i.id, i.name, i.country, i.datecreated}).Distinct();

ベストアンサー1

このDistinct()メソッドは、DISTINCT SQL 述語をデータベースに送信しないため、パフォーマンスがよくありません。group代わりに以下を使用します。

var distinctResult = from c in result
             group c by c.Id into uniqueIds
             select uniqueIds.FirstOrDefault();

LINQ のグループは、実際には、指定したプロパティをキーとするエンティティのサブグループを作成します。

Smith
  John
  Mary
  Ed
Jones
  Jerry
  Bob
  Sally

上記の構文はキーを返し、個別のリストを生成します。詳細については、次を参照してください。

http://imar.spaanjaars.com/546/using-grouping-instead-of-distinct-in-entity-framework-to-optimize-performance

おすすめ記事