EF 使用linq 左连接
在使用表连接的时候,匹配不到子表内容,显示为空
using (SamContext dbContext = new SamContext("name = SamLacs"))
{
//*2 左连接测试
var tt2 = from a in dbContext.SAM_RELATIONSs
join p in dbContext.SAM_PNGROUPNAMEs on a.PNGROUPID equals p.PNGROUPID into rslt1
from join_p in rslt1.DefaultIfEmpty()
join s in dbContext.SAM_STNGROUPNAMEs on a.STNGROUPID equals s.STNGROUPID into relt2
from join_s in relt2.DefaultIfEmpty()
join app in dbContext.SAM_FILESINFOs on a.APP_ID equals app.VER_ID into relt3
from join_app in relt3.DefaultIfEmpty()
join file1 in dbContext.SAM_FILESINFOs on a.FILE_ID1 equals file1.VER_ID into relt4
from join_file1 in relt4.DefaultIfEmpty()
join file2 in dbContext.SAM_FILESINFOs on a.FILE_ID2 equals file2.VER_ID into relt5
from join_file2 in relt5.DefaultIfEmpty()
join file3 in dbContext.SAM_FILESINFOs on a.FILE_ID3 equals file3.VER_ID into relt6
from join_file3 in relt6.DefaultIfEmpty()
select new
{
a.RELATIONID,
a.PNGROUPID,
pnname = join_p.NAME,
a.STNGROUPID,
stname = join_s.NAME,
a.APP_ID,
appurl = join_app == null ? null : join_app.FILE_URL,
a.FILE_ID1,
file1url = join_file1 == null ? null : join_file1.FILE_URL,
a.FILE_ID2,
file1ur2 = join_file2 == null ? null : join_file2.FILE_URL,
a.FILE_ID3,
file1ur3 = join_file3 == null ? null : join_file3.FILE_URL,
};
dataGridView1.DataSource = tt2.ToList();
}