3个相关的实体表

时间:2013-10-03 16:18:10

标签: c# asp.net entity-framework

我可以使用EntityDataSource将3个实体相关表中的数据显示到Gridview吗? 有可能吗?

例如:

货币表

ID - 1
NAME - JPY

票务表

ID - 1
NameId - 2
Time - 08:00AM

用户表

ID - 2
CurrencyID - 1
Name - JESSY

我想在gridview中显示:

JESSY JPY 8:00AM

有可能吗?

2 个答案:

答案 0 :(得分:1)

您可以选择用户并获取相关货币实体的名称以及关联的故障单实体的时间。只要设置了外键和关联,就可以使用导航属性并创建这样的匿名对象。然后,将结果放入gridview。

var results = Users.Select(x => 
       new { 
              Name = x.name, 
              Currency = x.Currency.Name, 
              Time = x.Ticket.Time 
       }).ToList();

答案 1 :(得分:1)

你可以通过join来实现。在连接之后将连接结果集放在容器上并用网格绑定此容器

在你的所有表格中,一列是常见的ID - 1

 var result=from p in User  
join q in Ticket on p.ID equals q.ID
join r in Currency on p.ID equals r.ID
select new {p.name,r.Name,q.Time}//Here you can get any column of ralated three tables

grid.Datasource =结果

希望上面的语法,会给你一个想法。如何解决你的问题。