【问题标题】:Join query returns empty result [closed]加入查询返回空结果[关闭]
【发布时间】:2012-06-08 12:09:34
【问题描述】:

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

  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();

但它总是返回空,有什么想法吗?

【问题讨论】:

  • 我们无法猜测您的类/数据库结构,也无法猜测您的数据。所以...

标签: c# .net linq linq-to-sql join


【解决方案1】:

试试这样的......

  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();

【讨论】:

  • 你能突出区别吗?我只能看到你已经删除了类型名称,我不知道为什么这会改变事情——只要有一个默认的构造函数和属性来填充他的另一个类就可以了。
  • 你是对的Rup。我们还必须考虑 Jakub Konecki 是如何回答的。
【解决方案2】:

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

如果没有看到您的数据,就无法说明为什么您的结果集为空。您的外键是否按照您认为的方式设置?

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

【讨论】:

    【解决方案3】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2019-08-08
      • 2021-03-18
      • 2021-11-20
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      相关资源
      最近更新 更多