2017-06-06 10 views
0

ユーザーが都市のデータを保存するテーブルが2つあります。結合クエリでDistinctを使用して、両方のテーブルの都市の総数を数えたいと思います。ASP.NET MVC 4のエンティティでdistinctを呼び出す方法

Table 1  Table 2 

ID City  ID City 
--------  ---------- 
1 CHD  1 PUT 
2 PUT  2 CHD 
3 LUD  3 MALK 
4 CHD  4 PUT 
5 PUT  5 APC 

私は両方のテーブルを結合し、都市の合計数を取得したいが、私は引用しているが、カウントに繰り返されないことを確認します。すなわち、表1および表2にCHDが存在する場合には、それを1回だけカウントする。

私は繰り返し都市を数えたくありません。私は私の結果をフィルタリングし、総数を得ることができるようにしたい。

私は表1にこのコードを書いていますが、私は結合クエリで同じ結果が必要です。

public int Locations() 
{ 
    int Locations = 0;   

    using (var db = new Entities()) 
     Locations = db.Table1.Select(o => o.City).Distinct().Count();   

    int Locations = 0;   

    using (var db = new Entities()) 
     Locations = db.Table2.Select(o => o.City).Distinct().Count(); 

    return Locations; 
} 

どのように2つのテーブルでこれを行うことができますか?

答えて

0

これはテストされていませんが、あなたが探しているものかもしれません。

​​
+0

ありがとうございました#Dillonその本当に役立ちます。 – Vikas

0

自動的にのみ、各コンポーネントのリストからユニークかかりますLINQ Union、実行します。

var locations = table1Locations.Union(table2Locations); 

クマ心の中であなたが各テーブルからわずかCityを選択しているので、これはのみ動作することを。これは、2つの効果的な組み合わせを意味します。IEnumerable<string>あなたが本質的にIEnumerable<Table1Entity>IEnumerable<Table2Entity>を持っているので、オブジェクトを直接結合しようとすると失敗します。これは結合できません。

関連する問題