员工
Empid | EmployeeName
1 -------------罗恩
2 ------------约翰
系
Depid | DepartmentName |状态| EMPID
1 ---------------账户--------- 1 --------- 1
2 --------------- HR ---------------- 1 --------- 1
3 ---------------金融---------- --------- 1 2
4 ---------------设计----------- 1 --------- 2
这里我有两个表Employee和Department。一个员工可以在不同的部门,例如两个部门的empid = 1,即账户和hr同样empid =两个部门中的2个,即财务和设计。
现在,例如,因为empid = 1被插入depid = 1并且depid = 2但是我试图得到depid = 2,这是empid = 2的最后插入行。同样,对于empid = 2最后一行是depid = 4。
现在,问题是我的LINQ连接没有提供所需的输出
由于我对Linq非常感兴趣,所以将非常感谢帮助。谢谢你
以下是我的LINQ加入
var empDepList = (from D in db.Department.Where(x => x.Status == 1)
join E in db.Employee on D.Empid equals E.Empid
select new
{
D.DepartmentName, E.EmployeeName
}).ToList();
答案 0 :(得分:1)
如果Employee.Empid
是主键,那么粗略的方法可能如下:
var empDepList =
(from D in db.Department
join E in db.Employee on D.Empid equals E.Empid
where D.Status == 1
orderby E.Empid, D.Depid descending
select new {
D.DepartmentName, E.EmployeeName
}).FirstOrDefault();
答案 1 :(得分:0)
尝试代码:
您已使用Group by或Subquery Used达到了您的结果;
var empDepList = (from E in db.Employee
select {
DepartmentName= db.Department.where(c=>c.status==1 && c.Empid==E.Empid).LastOrDefault()==null?"":db.Department.where(c=>c.status==1 && c.Empid==E.Empid).LastOrDefault().DepartmentName,
EmployeeName= E.EmployeeName
}).ToList();
答案 2 :(得分:0)