【发布时间】:2014-09-19 14:09:15
【问题描述】:
...我已经尝试了一些方法,但我得到了“本地序列不能在 LINQ to SQL 实现的查询运算符中使用,但包含运算符除外。”例外。 我说的是这个:
Query = Query.Where(t => this.SysTextBox.Text.CSL2Array().All(ss => t.SysName.Contains(ss)));
我对此有点陌生,但我一直在努力让它发挥作用。先感谢您!
【问题讨论】:
-
什么是
CSL2Array? -
哦。它只返回一个包含来自 SubSystemTextBox.Text 的单词的数组。它用逗号分割字符串。
-
显然查询提供程序无法将其转换为 SQL 代码。您不必在表达式内部执行此操作,这就是错误消息告诉您的内容。
-
知道了。所以我不能用 linq 做到这一点。
-
你不能用 LINQ 做那个特定的操作,这并不意味着你不能用 LINQ 做剩下的任何事情。您的原始解决方案存在 吨 的问题,从多次迭代序列,在应用程序端完成所有工作,而不是在数据库端完成任何工作,错误的印象是返回的可查询对象可以在不进行评估的情况下进一步细化,在搜索/删除时通过大型集合进行大量线性搜索,在整个地方重新计算值等等。