【问题标题】:Linq Join ProblemLinq 连接问题
【发布时间】:2010-07-08 08:24:00
【问题描述】:

我想使用 linq 从数据表中获取数据。我在缓存中有 2 个表,我想加入这些表然后从结果集中获取值。我在这里粘贴了原始 Sql 查询和我的 linq 查询。我的 linq 查询没有返回任何内容。我错过了哪里?我原来的 sql 查询返回 1 行,但 q1 什么都没有

'原始Sql查询

select b.FL_DSD from LU_CUSTOMER a, LU_TYPE b where a.ID_TYPE=b.ID_TYPE and a.ID_NO=355

我的 Linq 查询

Dim q1 = From c In cls_StaticData.Get_Data(cls_StaticData.Tables.LU_CUSTOMER) Where c.Item("ID_NO") = 355 Join _
 o In cls_StaticData.Get_Data(cls_StaticData.Tables.LU_TYPE) On c.Item("ID_TYPE") Equals o.Item("ID_TYPE")

【问题讨论】:

    标签: asp.net vb.net linq


    【解决方案1】:

    您确定您的第二个表的 ID_TYPE 记录与您的第一个表中的值匹配吗?您可能会在内部加入您的数据。像这样将 Linq 查询变成 LEFT OUTER JOIN,看看是否能取回数据。如果是这样,您要么错过了右侧数据表中的查找,要么您的 Equals 比较在某个地方遇到了问题。

    Dim q1 = From c In cls_StaticData.Get_Data(cls_StaticData.Tables.LU_CUSTOMER) _
    Where c.Item("ID_NO") = 355 _
    Group Join o In cls_StaticData.Get_Data(cls_StaticData.Tables.LU_TYPE) _
    On c.Item("ID_TYPE") Equals o.Item("ID_TYPE") _
    Into joinedMatches = Group _
    From matchedRight In joinedMatches.DefaultIfEmpty() _
    Select New With {.Left = c, .Right = matchedRight}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-24
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      相关资源
      最近更新 更多