2011-10-21 3 views
0

BlogPostとCategory-manyリレーションシップ、データセットがリピータを直接バインドする場合、リピータをバインドするために開発されたコードを初めて使用する方法は?EF多対多を使用したコードの最初の開発では、データをリピータにバインドする方法はありますか?

public class BlogPost 
    { 
     public int BolgID 
     { 
      get; 
      set; 
     } 

     public int ID 
     { 
      get; 
      set; 
     } 

     public string Title 
     { 
      get; 
      set; 
     } 

     public virtual ICollection<Category> Category 
     { 
      get; 
      set; 
     } 
    } 

public class Category 
    { 
     public int ID 
     { 
      get; 
      set; 
     } 

     public string Title 
     { 
      get; 
      set; 
     } 

     public virtual ICollection<BlogPost> BlogPost 
     { 
      get; 
      set; 
     } 
} 



    using(MyDemoContext context = new MyDemoContext()) 
       { 
        DbSet<BlogPost> post = context.Set<BlogPost>(); 
         var v = post.Include(p=>p.Category).Where(p=>p.ID==5).ToList(); 
         Repeater1.DataSource = v; 
         Repeater1.DataBind(); 
       } 

のblogid BlogTitle CategoryTitle //カテゴリーのタイトル、この結果を得るためにどのように

 </HeaderTemplate> 
     <ItemTemplate> 
      <tr> 
       <td><%# Eval("ID")%></td> 
       <td><%# Eval("Title")%></td> 
       <td><%# Eval("")%></td>//here how to bind Category.Ttitle? 
      </tr> 
     </ItemTemplate> 
     <FooterTemplate> 
     </table> 
     </FooterTemplate> 

     </asp:Repeater> 

BlogID BlogTitle CategoryTitle 

    5  test   C# 

    5  test   asp.net 

    5  test   VB 

答えて

0

Catgoryとブログ投稿があり多くの関係から、ブログ投稿には複数のカテゴリがあります。私はあなたがここに表示したいカテゴリのタイトルがわからない - 典型的には、コンマで区切られたリスト(または箇条書きのリスト)を表示するだろう。これは、リピータを入れ子にすることによって達成できる。例えば、

<ItemTemplate> 
    <tr> 
    <td><%# Eval("ID")%></td> 
    <td><%# Eval("Title")%></td> 
    <td> 
     <asp:Repeater runat="server" ID="C" DataSource='<%# Eval("Category") %>'> 
      <ItemTemplate><%# Eval("Title") #></ItemTemplate> 
      <SeparatorTemplate>, </SeparatorTemplate> 
     </asp:Repeater> 
    </td> 
    </tr> 
</ItemTemplate> 

Diclaimer:テンプレート上でテストされていないコード

ノエは、カンマ区切りのリストを生成しますが、あなたはあなたの必要性に従ってレイアウトを調整することができます。

+0

thxしかし、上記の結果が欲しいのですが、より良い方法は何ですか – yao

+0

@yao、ブログの投稿ごとに1つのカテゴリがある場合は、上記のコードで同じ結果が得られます! – VinayC

+0

これは1対多のもので、今では多くを扱う方法がわかりません:( – yao

関連する問題