联接查询返回空结果

本文关键字:结果 返回 查询 | 更新日期: 2023-09-27 18:36:38

我正在尝试使用以下代码将几个表连接在一起

  var result = (from n in db.tbl_NAWs
                join s in db.Status on n.Status equals s.StatusID
                join a in db.tbl_Afdelings on n.Afdeling equals a.ID_Afdeling
                join l in db.Locaties on n.Locatie equals l.LocatieID
                select new NAW_Dto()
                {
                    ClassNR = n.ClassNr,
                    Status = s.Beschrijving,
                    Client = n.Aanspreekvorm,
                    Locatie = l.Naam,
                    Afdeling = a.Afdeling,
                    KamerNr = n.Kamernummer
                }).ToList();

但它一直空着返回,有什么想法吗?

联接查询返回空结果

试试这样的事情....

  var result = (from n in db.tbl_NAWs
                join s in db.Status on n.Status equals s.StatusID
                join a in db.tbl_Afdelings on n.Afdeling equals a.ID_Afdeling
                join l in db.Locaties on n.Locatie equals l.LocatieID
                select new 
                {
                    ClassNR = n.ClassNr,
                    Status = s.Beschrijving,
                    Client = n.Aanspreekvorm,
                    Locatie = l.Naam,
                    Afdeling = a.Afdeling,
                    KamerNr = n.Kamernummer
                }).ToList();

运行 Sql 探查器,检查正在执行的实际 SQL 查询是什么,并查看数据。

无法在不查看数据的情况下判断为什么结果集为空。您的外键设置方式是否与您认为的相同?

尝试在删除一些联接的情况下执行此查询 - 您将能够以这种方式找到有问题的联接。

将其分解为 TSQL 并在 SSMS 中运行它一次删除一个注释,看看哪个不匹配

select n.ClassNr
-- , s.Beschrijving
-- , a.Afdeling
-- , l.Naam
from tbl_NAWs as n
-- join Status as s on n.Status equals s.StatusID
-- join tbl_Afdelings as a on n.Afdeling equals a.ID_Afdeling
-- join Locaties as l on n.Locatie equals l.LocatieID