林克返回了意外的结果

本文关键字:结果 意外 返回 林克 | 更新日期: 2023-09-27 18:25:08

我有以下查询,它应该不返回行,但返回4:

var testAgainst = db.MyForm1_hosps.Select(ta => ta.recordId == recordId);

如果我使用以下查询,我会得到预期的零行:

var testAgainst = from ta in db.MyForm1_hosps
                  where ta.recordId == recordId
                  select ta;

MyForm1_hosp中有四行,但没有一行与我测试中的recordId匹配。

代码没有说谎,所以我对LINQ的理解是错误的。有人能解释一下为什么第一个返回4行,而它应该返回0吗?

林克返回了意外的结果

您的第一个查询有一个错误。将Select更改为Where

var testAgainst = db.MyForm1_hosps.Where(ta => ta.recordId == recordId); 

使用Select(ta => ta.recordId == recordId)调查原始查询:这将返回布尔值的序列。如果db.MyForm1_hosps中的任何记录都没有与输入匹配的recordId值,则结果都将为false。如果您有4条记录,您将得到4个错误值。你有4个结果,但它们不是你认为的类型!