複数の列で区別する方法があるかどうかを確認したかっただけです。前もって感謝します!!!
ところで、私はここで素晴らしいLINQ拡張機能を見つけましたが、複数の列に使用するにはいくつかのガイダンスが必要です
複数の列で区別する方法があるかどうかを確認したかっただけです。前もって感謝します!!!
ところで、私はここで素晴らしいLINQ拡張機能を見つけましたが、複数の列に使用するにはいくつかのガイダンスが必要です
さて、最初に射影を行うことができます:
var qry = db.Customers.Select(cust => new {cust.ID, cust.Name, cust.Region})
.Distinct();
またはクエリ構文で:
var qry = (from cust in db.Customers
select new {cust.ID, cust.Name, cust.Region}).Distinct();
それは?
Distinct の代わりに Groupby を使用して、各グループの最上位レコードを選択できます
匿名型を使用せずに複数のフィールドで LINQ を区別する方法
objEntity の o から戻る
group o by new { o.Field1, o.Field2, o.Field3, o.Field4, o.Field5 } into grp select grp.FirstOrDefault();
これにより、 AnonymousTypeではなくEntityObjectが得られます
「複数の列で区別する」とは、実際にはグループ化を意味します。
個別を要求すると、すべての個別の行、またはテーブル内のすべての列を使用してグループを取得していることを意味します。
列のサブセットに対して個別のグループ化のみを取得する場合は、句で group by を使用して、グループ化する列を指定します。次に、各グループに 1 セットのキーのみが必要なため、グループを選択します。
var qry = (db.Customers の cust から新しい {cust.ID, cust.Name, cust.Region} を選択します).GroupBy(x => 新しい { x.Name,x.Region}).select(z => z .OrderBy(i => i.cust).FirstOrDefault()).ToList();