Linq to SQL One to Many查询数据绑定到Gridview

时间:2014-07-09 22:14:46

标签: c# asp.net linq-to-sql

我有一个LTSQL查询,它返回SQL Server DB中的所有用户和用户编辑。 例如,一个用户可以拥有许多用户角色。因此,在返回的查询中,如果查看单个用户行,则每个userRole都将具有EntitySet(UserRole)

返回所有关系数据的C#LTSQL查询只是

   var results = from u in db.Users
             Select u;

   Gridview.DataSource = results;
   Gridview.Databind;

这将显示用户表中的所有数据,但不显示作为查询结果中的实体的userroles。

如果我想显示来自users表的用户信息以及单个gridView行上的所有用户信息,那么最有效的方法是什么? gridView看起来应该是这样的:

UserId |  UserName  |  UserRoles         | 
1      | John Smith |  Admin, Accountant | Edit
2      | Dave Jones |  Sales, Admin      | Edit

1 个答案:

答案 0 :(得分:2)

这样的事情:

var results = from u in db.Users
             Select new {
                           UserID = u.UsrID,
                           UserName = u.UserName,
                           UserRoles = string.Join(", ", u.UserRoles.Select(r => r.Name))
                        };