C# 带有列表的LINQ语句<;国际?>;不返回结果?
我有以下LINQ查询C# 带有列表的LINQ语句<;国际?>;不返回结果?,c#,linq,C#,Linq,我有以下LINQ查询 var sites = new List<int?>(); sites.Add(customer.SiteId); return context.Where<Equipment>(x => sites.Contains(x.SiteId)).ToList(); 我得到返回的数据,但是如果我将ID59传递给上面的语句,我不会得到返回的结果吗?有人能告诉我我在这里做错了什么吗?您在一个名为站点的表中有一个项目,其站点ID为59,但是,您尝试从上
var sites = new List<int?>();
sites.Add(customer.SiteId);
return context.Where<Equipment>(x => sites.Contains(x.SiteId)).ToList();
我得到返回的数据,但是如果我将ID59传递给上面的语句,我不会得到返回的结果吗?有人能告诉我我在这里做错了什么吗?您在一个名为
站点
的表中有一个项目,其站点ID
为59,但是,您尝试从上下文
加载设备
记录,而站点ID
为59,这不会产生给定站点
记录的设备。这意味着您有一个站点
记录,其id
为59,但没有设备
通过id 59链接到该站点。运行查询以查看哪些设备具有给定的站点ID
,例如:
select *
from Equipments
where SiteId = 59
这里的
上下文是什么?这个实体框架,LINQ到SQL,是其他的吗?您能够查看生成的SQL吗?如果您将站点
设为列表
而不是列表
,会发生什么情况?您正在使用简化列表进行测试,并且只插入59
,这已经失败了?您没有将数据添加到DataContext中。我肯定会先使用列表
,因为如果生成的SQL是中的SiteId(59,null),我怀疑在列表中传递null
值是否与数据库端的null
匹配
但也许EF足够聪明,可以使SiteId为null | | SiteId在(59)
@juharr我猜x.SiteId
可以为null,这就是OP使用List
的原因,而不是因为他要在那里存储null。
select *
from Equipments
where SiteId = 59