【发布时间】:2009-04-02 23:26:30
【问题描述】:
我正在使用一个循环构建一个 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。
问题是:这怎么可能!?
【问题讨论】:
标签: c# linq linq-to-sql