C# Linq到实体连接
我有一个关于使用Linq连接到实体的问题。根据文档,在没有限定符的连接上使用类似于左外连接。但是,当我执行下面的代码时,返回的计数为零。但是如果我注释掉这三条连接线,我得到的计数是1。这将指示联接充当内部联接。我有两个问题。默认值是右内还是右外?第二,我如何做另一个,即内部或外部?内部和外部的关键词不起作用C# Linq到实体连接,c#,asp.net,database,linq-to-entities,C#,Asp.net,Database,Linq To Entities,我有一个关于使用Linq连接到实体的问题。根据文档,在没有限定符的连接上使用类似于左外连接。但是,当我执行下面的代码时,返回的计数为零。但是如果我注释掉这三条连接线,我得到的计数是1。这将指示联接充当内部联接。我有两个问题。默认值是右内还是右外?第二,我如何做另一个,即内部或外部?内部和外部的关键词不起作用 var nprs = (from n in db.FMCSA_NPR join u in db.FMCSA_USER on n.CR
var nprs = (from n in db.FMCSA_NPR
join u in db.FMCSA_USER on n.CREATED_BY equals u.ID
join t in db.LKUP_NPR_TYPE on n.NPR_TYPE_ID equals t.ID
join s in db.LKUP_AUDIT_STATUS on n.NPR_STATUS_ID equals s.ID
where n.ROLE_ID == pRoleId
&& n.OWNER_ID == pOwnerId
&& n.NPR_STATUS_ID == pNPRStatusId
&& n.ACTIVE == pActive
select n).ToList();
if (nprs.Count() == 0)
return null;
没有关键点的联接与内部联接类似。我目前在文档中找不到它,但我会在找到后发布编辑。但是,要执行左外部联接,这里有一个示例:LINQ中的联接默认为内部联接。要进行外部联接,必须手动执行“if null then”或编写自己的自定义联接操作 左侧外部示例,如果为空,则为手动:
var query = from person in people
join pet in pets on person equals pet.Owner into gj //inner
from subpet in gj.DefaultIfEmpty()
select new { person.FirstName, PetName = (subpet == null ? String.Empty : subpet.Name) }; //left outer