2014-07-09 76 views
0

我有一个LTSQL查询,它从SQL Server数据库返回所有用户和userroles。例如,一个用户可以有许多用户角色。因此,在返回的查询,如果你看一个单一的用户排它会有的EntitySet(UserRole的)每个UserRole的Linq to SQL一对多查询数据绑定到Gridview

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

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

    Gridview.DataSource = results; 
    Gridview.Databind; 

这将显示所有来自用户表的数据而不是来自查询结果中的实体的userroles。

如果我想在用户表中显示用户信息,并在单个gridView行上显示所有userroles,那么最有效的方法是什么? GridView的应该是这个样子:

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

回答

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)) 
         };