带有List <int?>的LINQ语句没有返回结果?

时间:2018-04-16 13:09:58

标签: c# linq

我有以下LINQ查询;

import numpy as np

A=np.array([[0, 1, 0, 0, 0, 1],
            [0, 0, 0, 1, 0, 1],
            [0, 1, 0, 0, 0, 1],
            [1, 0, 1, 0, 1, 1],
            [1, 1, 1, 0, 0, 0],
            [0, 1, 0, 1, 0, 1],
            [0, 0, 0, 0, 0, 0]])

seen={(0, )*6}

res = []

for idx, row in enumerate(map(tuple, A)):
    if row not in seen:
        res.append(idx)
        seen.add(row)

print(A[res])

# [[0 1 0 0 0 1]
#  [0 0 0 1 0 1]
#  [1 0 1 0 1 1]
#  [1 1 1 0 0 0]
#  [0 1 0 1 0 1]]

站点列表是我需要查找的SiteIds列表。我目前正在使用简化的单数列表进行测试。但是,如果我要使用SQL语句进行查找

var sites = new List<int?>();
sites.Add(customer.SiteId);

return context.Where<Equipment>(x => sites.Contains(x.SiteId)).ToList();

我得到了返回的数据,但是如果我将id 59传递给上面的语句,我得不到返回的结果?谁能告诉我,我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

您在名为SitesSiteId为59的表中有一个项目,但是,您尝试从Equipment加载contextSiteId个记录59,这不会产生给定Sites记录的设备。这意味着您的Sites记录的id为59,但没有Equipment通过ID为59链接到该网站。运行查询以查看具有的设备是什么给定的SiteID,如:

select *
from Equipments
where SiteId = 59