我有一个包含一些产品的表的 sql 数据库,每个产品都可以在一台或多台机器上生产。现在我想搜索在某台机器上生产的所有产品。
表格是这样的:
产品引用(nvarchar) |机器(nvarchar)
P1 | 1,2,3
P2 | 2
P3 | 2
P4 | 2,3
我尝试使用以下查询,但我发现 linq-to-sql 不支持拆分字符串。
public List<string> GetReferenceForMach(string machName)
{
IEnumerable<string> producttmp = from product in productInfo
let machines = product.Machines.Split(',')
from machine in machines
where machine == machName
select product.Reference;
return producttmp.ToList();
}
还有其他编程方式吗?
最佳答案
当生活给你数据库中的字符串时,正常的 react 是使用字符串解析:
string machName;
string midName = ',' + machName + ',';
from product in productInfo
where (',' + product.Machines + ',').Contains(midName)
select product.Reference
没有索引来帮助这个查询 - 所以准备进行表扫描。
关于c# - 还有另一种方法可以执行此查询吗? (包含 linq-to-sql 查询中的拆分字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6597543/