我在想出正确的查询来从我的 ERD 中获取数据时遇到了问题。因此,为了清楚起见,下图是简化版本。
因此,用户可以加入一个组,此关系保存在UserPerGroup表中,一个组可以有事件。 现在我希望能够获取用户所属的每个组的所有事件(描述/对象)。我在MVC .NET项目中使用Linq,但不介意我是否得到一个原始(MS)SQL查询。
谢谢
简化的 ERD
编辑:下面的查询可以转换为以下 Linq 格式吗?
return db.Event. ... .ToList();
会返回一个 IEnumbarable 吗?
select e.id,e.[description] from [User] u
Inner join UserPerGroup upg on upg.userid=u.id
Inner join [event] e on e.groupid=upg.groupid
Where u.id=[USER_ID_VALUE]
罗希特·帕德玛的查询
您可以使用简单的 LINQ 联接运算符来关联实体,如下所示(我猜的是名称):
int userId = ...;
var query =
from e in db.Event
join ug in db.UsersPerGroup on e.GroupId equals ug.GroupId
where ug.UserId == userId
select e;
return query.ToList();
希望这个原始SQL查询有所帮助。
select e.id,e.[description] from [User] u
Inner join UserPerGroup upg on upg.userid=u.id
Inner join [event] e on e.groupid=upg.groupid
Where u.id=[USER_ID_VALUE]