我有一个像这样的数组
string[] Reportable = { "1", "3", "5" };
我在我的数据库中有一个表产品,其中包含一个PartNumber列,我可以像这样得到所有partNumbers,例如值2。
var result = db.Products.ToList().Where(product => product.PartNumber == 2);
但我希望从数据库中获取与我的数组Reportable中的值匹配的所有值。例如,如果我的表看起来像这样
ID Name PartNumber
1 Name1 1
2 Name2 1
3 Name3 2
4 Name4 3
5 Name5 4
6 Name3 5
我的查询结果应该是id为1,2,4,6的行,因为我的数组中没有数字2和4。
修改
我试图获取所有以Reportable数组中的数字开头的PartNumbers,而不仅仅是完全匹配。如果我的数组中有数字20,则查询中的有效数字将是例如2010,20221,20和20111,但不是例如25111,10333,11000。我找到了扩展方法StartsWith()但是我没有得到它工作
答案 0 :(得分:0)
您可以像这样使用Contains
:
var result =
db.Products.Where(product =>
Reportable.Any(r => product.PartNumber.StartsWith(r))
).ToList();