【问题标题】:LINQ join statement to check if number exist in another join tableLINQ 连接语句检查数字是否存在于另一个连接表中
【发布时间】:2016-02-17 21:58:00
【问题描述】:

我在编辑以下 LINQ 查询时遇到错误

var tNumber = 10001;


var data = from r in R_TABL
                               join pt in PT_TABL
                                   on r.R_id equals pt.id into trans
                               join tu in TU_TABL
                                   on tNumber equals tu.tUNUMBER
                               from tr in trans.DefaultIfEmpty()
                               where r.r_number == tNumber &&
                                     r.sequence == "101001"

                               select new MyDto
                               {

                                   IsExisting = tu.tUNUMBER != null ? true : false
                               };

我添加了以下行:

join tu in TU_TABL on tNumber equals tu.tUNUMBER

IsAppAssist = tu.tUNUMBER != null ? true : false

我需要加入 TU_TABL 以检查表中是否存在数字。在 c# 方法中,我传入参数 tNumber 并检查 "join tu in TU_TABL on tNumber equals tu.tUNUMBER" 看是否有匹配。我创建了一个新的 DTo 并将布尔值 IsExisting 设置为 if tu.tuNumber != null。

如果数字存在,IsExisting 为真,否则为假。

当我检查结果时,所有返回的记录都是假的。更正 linq 连接以检查连接表中是否存在数字的正确方法是什么?

【问题讨论】:

    标签: linq


    【解决方案1】:

    equals 子句的左侧不检查列;您应该将其与rt_number 进行比较:

    join tu in TU_TABL
        on r.r_number equals tu.tUNUMBER
    

    【讨论】:

      猜你喜欢
      • 2014-03-08
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多