0

2 つのテーブルを結合する linq クエリがあります (実際のデータベースには関係がありません)

関係は次のとおりです。会社 1 - n 電話

var miniCompanies =
    (from companies in db.Companies 
     join phones in db.Phones on companies.Id equals phones.CompanyId
     select new
     {
         companies.Name,
         phones.Phone,
     }).ToList().Distinct();

これは次のようなものを返します。

----------------------------
company1     |    12345    |
----------------------------
company1     |    23456    |
----------------------------
company2     |    43242    |
----------------------------
company2     |    34234    |
----------------------------
company2     |    65442    |
----------------------------

電話テーブルの最初だけを取得する必要があるのではなく、それを行う方法をすべて取得する必要がありますか?
編集:おそらく、何が申し訳ないのかはっきりしていませんでした。
i ment:
----------------------------
company1 | 12345 |
----------------------------
会社2 | 43242 |
----------------------------

各会社の最初の電話が欲しい

4

3 に答える 3

2

GroupBy を使用できます。

var miniCompanies =
(from companies in db.Companies 
 join phones in db.Phones on companies.Id equals phones.CompanyId
 select new
 {
     companies.Name,
     phones.Phone,
 }).GroupBy(c=>c.Name).Select(c=>c.FirstOrDefault()).ToArray();
于 2012-10-01T12:55:39.223 に答える
-1

1で試すことができますFirst operator

(from companies in db.Companies 
 join phones in db.Phones on companies.Id equals phones.CompanyId
 select new
 {
     phones.Phone,
 }).First();

リンク: http: //msdn.microsoft.com/fr-fr/library/vstudio/system.linq.queryable.first.aspx

2も使用できますFirstOrDefault

リンク: http: //msdn.microsoft.com/fr-fr/library/vstudio/system.linq.queryable.firstordefault.aspx

3も使用できますTake(1);

リンク: http: //msdn.microsoft.com/fr-fr/library/vstudio/bb300906.aspx

于 2012-10-01T12:27:15.793 に答える
-2

私は以下を使用します:

var miniCompanies =
(from companies in db.Companies 
 join phones in db.Phones on companies.Id equals phones.CompanyId
 select new
 {
     companies.Name,
     phones.Phone,
 }).ToList().Distinct().FirstOrDefault();

「FirstOrDefault()」メソッドは、コレクションの最初のアイテムを返します。コレクションに要素が含まれていない場合は、デフォルト オブジェクトが返されます。null 許容型の場合、これは「null」オブジェクトになります。これは、空のコレクションに関連する例外が原因でアプリケーションが失敗するのを防ぐ良い方法です。

于 2012-10-01T12:29:26.887 に答える