我正在努力使用.Join
方法链接LINQ
的语法。
我需要使用此语法,以便我的查询返回IQuerable
结果,而不是IEnumerable
。
我想加入UserGroups
的用户,并返回一个包含两个表中字段的新对象。
这里JOIN
操作的正确语法是什么?
var q = dc.Users
.Join(dc.UserGroups,
p => p.UserGroupID,
s => s.UserGroupID,
x => x.UserGroup) //what is the right syntax?
.Where(p => p.User.DepartmentID == '123')
.OrderBy(p => p.User.UserName)
.Select(p => new UserStruct
{
UserID = p.UserID,
UserName = p.User.UserName,
FullName = p.User.FullName,
UserGroup = p.UserGroup
});
这里的错误是:
无法从用法中推断出方法....的类型参数。
答案 0 :(得分:2)
这样的事情:
var q = dc.Users
.Join(dc.UserGroups,
p => p.UserGroupID,
s => s.UserGroupID,
(u, g) => new { User = u, UserGroup = g})
.Where(p => p.User.DepartmentID == '123')
.OrderBy(p => p.User.UserName)
.Select(p => new UserStruct
{
UserID = p.User.UserID,
UserName = p.User.UserName,
FullName = p.User.FullName,
UserGroup = p.UserGroup
});