【发布时间】:2021-04-19 10:14:11
【问题描述】:
我有一些 linq 可以返回条形码列表:
var barcodeList = context.table1.Where(z => z.register == registerNo).Select(z => z.barcode).ToList();
然后我尝试检索与每个条形码相关的数据:
var info = context.table2.Where(z => barcodeList.Contains(z.barcode)).ToList();
barcodeList 正在返回 12 个唯一的条形码。 但是,info 正在返回与第一个条码 12 倍相关联的数据。
我哪里错了?
【问题讨论】:
-
您的代码看起来可以运行。您确定表 1 中的条形码与表 2 中的条形码匹配吗?确保条形码后面没有隐藏字符。例如:如果你从 Excel 中复制数据,有时你也会复制新的换行符。
-
@RikMaton 我添加了一个 .Trim 条形码以确保。还在发生。并且两个表中的条形码都匹配。
-
您是否尝试过在 SQL 中运行类似的查询,看看结果如何?
select barcode from table2 where barcode in (select barcode from table1 where register = 1)使用与示例中相同的寄存器。 -
varbarcodeList = context.table1.Where(z => z.register == registerNo).GroupBy(z => z.barcode).Select(x => x.First())。 ToList();
-
@jdweng 那么条形码列表有问题吗?能解释一下吗?