【发布时间】:2013-05-15 17:18:02
【问题描述】:
尝试使用 Linq 加入。 我应该用什么?左连接还是右连接?
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
这是我在控制器中的代码:
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;
}
我希望有人可以推荐我使用什么或做什么。 提前谢谢你。
【问题讨论】:
-
我相信
.DefaultIfEmpty()会翻译成LEFT JOIN,你有没有分析过它?
标签: c# asp.net asp.net-mvc linq entity-framework