Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq到实体连接_C#_Asp.net_Database_Linq To Entities - Fatal编程技术网

C# Linq到实体连接

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

我有一个关于使用Linq连接到实体的问题。根据文档,在没有限定符的连接上使用类似于左外连接。但是,当我执行下面的代码时,返回的计数为零。但是如果我注释掉这三条连接线,我得到的计数是1。这将指示联接充当内部联接。我有两个问题。默认值是右内还是右外?第二,我如何做另一个,即内部或外部?内部和外部的关键词不起作用

 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