[英]LEFT JOIN or RIGHT JOIN using LINQ Entity-Framework
Trying joining using Linq. 尝试使用Linq加入。 What should i use ?
我该怎么用? Left join or right join?
左连接还是右连接?
APPLICANT TABLE PROFILE TABLE
APPLICANT_ID|profile_id|Applicant_Name| |profile_id|Applicant_Name
1 | NULL | RAY HEAVENS | | 1 | MARK LAPID
2 | NULL | BEN TULFO | | 2 | SUPER MAN
3 | 1 | NULL | | 3 | BRANDON KNIGHT
4 | 2 | NULL | |
5 | 3 | NULL | |
DESIRED OUTPUT:
APPLICANT_ID | Applicant_Name
1 | RAY HEAVENS
2 | BEN TULFO
3 | MARK LAPID
4 | SUPERMAN
5 | BRANDON KNIGHT
This is my code in my controller: 这是我的控制器中的代码:
var applicantList = (from a in context.Profiles
join app in context.APPLICANTs
on a.PROFILE_ID equals app.Profile_id into output
from j in output.DefaultIfEmpty(new APPLICANT())
select j ).Take(1000).AsEnumerable();
applicantdata = applicantList.AsQueryable().OrderBy(v => v.APPLICANT_ID).ToList();
if (applicantdata.Any())
{
Cache.Set("applicants", applicantdata, 30);
}
}
return applicantdata;
}
I hope someone can recommend me what to use or what to do. 我希望有人可以推荐我使用或做什么。 Thank you in advance.
先感谢您。
Updated for the error: You will need to create a new class with the required properties and return it. 针对错误进行了更新: 您需要创建具有所需属性的新类并将其返回。
var applicantList = (from app in context.APPLICANTs
join a in context.Profiles
on app.Profile_id equals a.PROFILE_ID into output
from j in output.DefaultIfEmpty()
select new { APPLICANT_ID = app.APPLICANT_ID, Applicant_Name = (j == null ? app.Applicant_Name : j.Applicant_Name) }).Take(1000).AsEnumerable();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.