LINQ join语句,用于检查另一个连接表中是否存在数字

时间:2016-02-17 21:58:01

标签: linq

我在编辑以下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并检查 “在tNumber等于tu.tUNUMBER时加入TU_TABL”以查看是否匹配。如果tu.tuNumber!= null,我创建一个新的DTo并将布尔值IsExisting设置为。

如果数字存在,IsExisting为true,否则为false。

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

1 个答案:

答案 0 :(得分:1)

equals子句的左侧不会检查列;您应将其与r t_number

进行比较
join tu in TU_TABL
    on r.r_number equals tu.tUNUMBER