0

car_type、car_manufacturer、car_model の 3 つのテーブルがあります。ユーザーが閲覧したい特定の車種をクリックすると、利用可能なメーカーのリストが表示されます。問題は、製造元のリストが明確でなく、一意でないことです。したがって、データベースにマツダのモデルが 3 つある場合、マツダはリストに 3 回表示されます。これは私のコントローラーです:

    public ActionResult Browse(string click_string)     
    {
         var x = carDB.Models
                 .Include(b => b.Manufacturer)
                 .Include(a => a.VehicleType)
                 .Where(a => a.VehicleType.TypeName == click_string);
         return View(x.ToList());
}

冗長なリストを削除するには、これをどのように記述すればよいですか? これは私にとってすべて新しいことなので、気楽にやってください。

4

5 に答える 5

0

.Distinctを使用して個別の要素を返すことができるはずです。

var x = carDB.Models
        .Include(b => b.Manufacturer)
        .Include(a => a.VehicleType)
        .Where(a => a.VehicleType.TypeName == click_string)
        .Distinct();
于 2013-04-15T17:21:18.733 に答える
0

最初.Distinct()にクエリの最後で a を実行してみてください。うまくいかない場合は、.Distinct() のカスタム比較子を提供する必要があるかもしれません

于 2013-04-15T17:21:55.823 に答える
0

個別に追加

var x = carDB.Models
        .Include(b => b.Manufacturer)
        .Include(a => a.VehicleType)
        .Where(a => a.VehicleType.TypeName == click_string)
        .Select(y => y)
        .Distinct();

.Select() は少し冗長かもしれませんが、私のビジュアルスタジオで試していないので、安全のためにそこに入れました

于 2013-04-15T17:22:09.910 に答える