asp.net mvc 4、エンティティ フレームワーク 5、SQL Server 2012 Express、コード ファースト
私は場所モデルを持っています:
public virtual int PlaceID { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
public virtual string Name { get; set; }
および関連するタグ モデル:
public virtual int TagID { get; set; }
public virtual string Name { get; set; }
public virtual string NamePlural { get; set; }
public virtual ICollection<Place> Places { get; set; }
それらは多対多の関係にあります。
「レストラン」というタグが付いたすべての場所を選択しています。
List<Place> Restaurants = allPlaces.Where(
p => p.Tags.Any(
t => t.Name == "Restaurant")).OrderBy(p => p.Name).ToList();
これを順序付けされたタグで表示し、名前で並べ替えたいと思います。
5つの場所があるとしましょう:
My Cafe Bar, Tags="Restaurant", "Cafe", "Bar"
Another Cafe, Tags="Restaurant", "Cafe"
Marios Italian, Tags="Restaurant", "Italian", "Bar"
Donnies Pizzaria, Tags="Restaurant", "Italian"
A1 Chinese, Tags="Restaurant", "Chinese"
Fusion One, Tags="Restaurant", "Chinese", "Italian"
China Garden, Tags="Restaurant", "Chinese"
以下の順序で出力したいと思います (すべてレストランなので、レストラン グループを出力する必要はありません)。
>>Bars
Marios Italian
My Cafe Bar
>>Cafes
Another Cafe
My Cafe Bar
>>Chinese
A1 Chinese
Fusion One
China Garden
>>Italian
Donnies Pizzaria
Fusion One
Marios Pizzaria
私の見解では、上記のように見出しを付けて表示したいと思います。
これはLinqで可能ですか?
ありがとう。