使用EF的code first开发怎么绑定多对多的数据到repeater?

chocolatelife 2011-10-21 11:53:50
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();

}

<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table>
<thead>
<td>BlogID</td>
<td>BlogTitle</td>
<td>CategoryTitle</td>//Category's title
</thead>

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


结果显示两张表的数据:

BlogID BlogTitle CategoryTitle

5 test C#

5 test asp.net

5 test VB

如果用dataset就非常简单直接绑定就行了,现在用code first怎么绑定呢?主要是对象里有对象集合。
...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bustersword 2011-10-26
  • 打赏
  • 举报
回复
重新构造数据源 T T
kkbac 2011-10-21
  • 打赏
  • 举报
回复
多个CategoryTitle吧.都是 ICollection<Category> 里面呢
你绑定的地方是一个 ICollection<Category>类型. 写一个方法, 遍历整个

比如:
<td><%# BindCategory((ICollection<Category>) Eval("Category"))%></td>//这里怎么绑定 Category.Ttitle?

页面上对应写一个BindCategroy的方法就是了.
chocolatelife 2011-10-21
  • 打赏
  • 举报
回复
用repeater嵌套:

BlogID BlogTitle CategoryTitle
5 test C#, asp.net,技术



但是我想要的结果是:

BlogID BlogTitle CategoryTitle
5 test C#
5 test asp.net
5 test 技术

chocolatelife 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 q107770540 的回复:]

using(MyDemoContext context = new MyDemoContext())

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

}
[/Quote]
p.Category是对象集合点不出Title
q107770540 2011-10-21
  • 打赏
  • 举报
回复
using(MyDemoContext context = new MyDemoContext())

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

}

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧