【发布时间】:2021-10-25 07:41:30
【问题描述】:
我有 3 张桌子:
- 用户:(Id、FirstName、LastName、DepartmentId、LocationId)
- 部门:(ID,部门名称)
- 位置:(Id,LocationName)
如何使用 lambda 表达式将Department.Id 加入到User.DepartmentId 和Location.Id 到User.LocationId?
我目前被 1 个加入卡住了。试图对此进行研究,但我看到的结果与多对多关系有关。
var userJoin = _db.Users
.Join(_db.Departments,
user => user.DepartmentId,
dept=> dept.Id,
(l, r) => new { l, r })
.Select(m => new UserModel()
{
// Map
}).ToList();
【问题讨论】:
-
如果您的模型具有正确定义的导航属性,则连接应该隐藏在这些访问后面并由 EF 代表您生成。您应该重新表述您的问题,以说明您面临的问题,而不是您想要的解决方案。此外,我认为一个部门应该有一个位置,无论是否有任何用户与之相关联。用户的位置不是部门的位置。如果有两个或多个不同位置的用户怎么办?那你选择哪一个作为部门的位置?
标签: c# asp.net-mvc lambda