2013-06-25 20 views
1

我真的不知道如何正确命名这个问题,所以随意编辑。在多对多情况下返回实体列表的最佳方式

我有一个非常简单的数据库模型,它具有UserUserGroup之间的多对多关系。现在它工作得很好,但我返回他所附的群组列表的方式并不太漂亮。我认为用LINQ调整或类似的方法有更好的方法。

这就是我到目前为止,再次 - 它的工作原理,但我认为这是可能的一个查询。

public virtual List<UserGroup> UserGroups 
{ 
    get 
    { 
     var _db = new MainDataContext(); 
     var userGroupUsers = _db.UserGroupUsers.Where(x => x.UserId == Id); 
     var userGroups = new List<UserGroup>(); 
     userGroupUsers.ToList().ForEach(x => 
     { 
      userGroups.Add(x.UserGroup); 
     }); 

     return userGroups; 
    } 
} 

回答

1

您应该使用Select

return _db.UserGroupUsers.Where(x => x.UserId == Id) 
         .Select(t => t.UserGroup) 
         .ToList(); 
+0

非常感谢。效果更好。 – sed

相关问题