在Entity Framework中如何使用repeater绑定一对多或多对多的数据?

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 virtual BlogSite BlogSite
{
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();

}
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table>
<thead>
<td>BlogID</td>
<td>BlogTitle</td>
<td>CategoryTitle</td>//Category的标题
</thead>

</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("ID")%></td>
<td><%# Eval("Title")%></td>
<td><%# Eval("")%></td>//这里怎么绑定
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>

最终显示效果就是列出这篇博客对应的多种分类:

BlogID  BlogTitle  CategoryTitle
5 test C#
5 test asp.net
5 test 技术
杨魅力
浏览 597回答 7
7回答

繁星点点滴滴

1.可以不用repeater啊。直接两个循环嵌套。 DbSet<BlogPost> post = context.Set<BlogPost>();foreach(var item in post){  foreach(var category in item.Category.CreateSourceQuery())   {      %>      <tr>        <td><%=item.Title%></td>        <td><%=category.Title%></td>      </tr>      <%   })} 2或者后台两张表join查询,得到一个list,然后repeater绑定这个list

HUWWW

在数据库中建立个视图,然后绑定视图就好了

沧海一幻觉

用code frist再去数据库建视图就没啥意义了

慕田峪9158850

把对象集合放在对象里

德玛西亚99

对象集合本来就在对象里,现在要绑定repeater怎么展现对象和对象集合的数据?

神不在的星期二

多嵌套一层repeater就可以了吧?
打开App,查看更多内容
随时随地看视频慕课网APP