2016-11-23 16 views
0

3つのDbSetsと1対多の関係を持つコンテキストクラスがあります。 (1)場所 - 大学(many) (1)University - Rating多くの)1対多の関係を持つListViewエンティティでの表示方法

そして私はwpfの私のリストビューのすべての評価にクエリの結果を表示する必要があります。 しかし、listViewは大学と場所のフィールドを表示しません。

ListView

クエリ例:

using (var c = new Context()) 
     { 
      ratingListView.ItemsSource = (from w in c.Ratings 
        where w.Year.Value == 2012 
        select w).ToList(); 
     } 

リストビューバインディング:

<GridViewColumn Header="Rank" Width="Auto" DisplayMemberBinding="{Binding WorldRank}"/> 
        <GridViewColumn Header="Institution" Width="120" DisplayMemberBinding="{Binding Unviversity}"/> 
        <GridViewColumn Header="Location" Width="60" DisplayMemberBinding="{Binding Location }"/> 
        <GridViewColumn Header="National&#x0a; Rank" Width="60" DisplayMemberBinding="{Binding NationalRank }"/> 
        <GridViewColumn Header=" Quality of &#x0a; Education" Width="70" DisplayMemberBinding="{Binding QualityOfEducation}"/> 
        <GridViewColumn Header=" Alumni of &#x0a;Employment" Width="70" DisplayMemberBinding="{Binding AlumniEmployment}"/> 
        <GridViewColumn Header=" Quality of &#x0a; Faculty" Width="70" DisplayMemberBinding="{Binding QualityOfFaculty}"/> 
        <GridViewColumn Header="Publications" Width="70" DisplayMemberBinding="{Binding Publications }"/> 
        <GridViewColumn Header="Citations" Width="60" DisplayMemberBinding="{Binding Citations }"/> 
        <GridViewColumn Header=" Broad &#x0a;Impact" Width="50" DisplayMemberBinding="{Binding BroadImpact}"/> 
        <GridViewColumn Header="Patents" Width="60" DisplayMemberBinding="{Binding Patents }"/> 
        <GridViewColumn Header="Score" Width="60" DisplayMemberBinding="{Binding Score }"/> 

答えて

1

あなたが唯一の評価テーブルからフィールドを選択するので、どのようにあなたからフィールドを表示できることを期待しています大学と場所!

オプション1

バインド大学や、University.UniversityNameUniversity.Location.LocationNameなどのナビゲーションオブジェクトを使用して場所列は、(あなたがあなたの全体の構造EFを供給していないように私はメンバーの名前を作りました)。

オプション2

linqクエリで大学と場所を含めます。

using (var c = new Context()) 
     { 
      ratingListView.ItemsSource = (from w in c.Ratings 
             join u in c.Universities 
             on w.UniversityID equals u.ID 
             join loc in c.Locations 
             on u.LocationID equals loc.ID 
        where w.Year.Value == 2012 
        select new {loc.Location, u.University, w.field1, w.field2}).ToList(); 
     } 
+0

ありがとうございますが、動作しません:select w、u、loc – CepBuch

+0

EDMXファイル(EF)にナビゲーションオブジェクトがありますか?もしそうなら、オプション1が行く方法かもしれません。それはより清潔できれいです。 –

+0

オプション2の問題を修正しました - これは匿名型を使用するようになりました –

関連する問題