我正在使用循环构建LINQ查询,该循环使用数组附加谓词:
foreach (string tag in tags)
{
result = result.Where(p => (p.TagsDelimited).Contains("," + tag + ","));
}
这会创建所有必需的子句,但每个子句只比较tags数组中的最后一个元素,从而生成sql
(((',' + [t0].[TagsDelimited]) + ',') LIKE '%,taglast,%') AND (((',' + [t0].[TagsDelimited]) + ',') LIKE '%,taglast,%')
而不是每个标签的一个子句。
我可以通过添加
来解决这个问题string temp = tag;
在for循环中使用temp而不是tag。
问题是:这怎么可能!?