...我已经尝试了一些东西,但我得到了#34;本地序列不能用于查询运算符的LINQ to SQL实现,除了Contains运算符。"例外。 我正在谈论这个:
Query = Query.Where(t => this.SysTextBox.Text.CSL2Array().All(ss => t.SysName.Contains(ss)));
我对此有点新意,但我一直努力让它发挥作用。先感谢您!
答案 0 :(得分:0)
var arr = this.SubSystemTextBox.Text.CSL2Array();
var notContained = Query.Where(td=>arr.Any(ss => !td.SubsystemName.Contains(ss)));
Query = Query.Except(notContained);
你可以想出如何在一行中做到这一点,这只是为了清楚。
答案 1 :(得分:0)
您应该可以在ToList
之后执行查询:
Query = Query.ToList<TagsDeleted>()
.Where(t => this.SubSystemTextBox.Text.CSL2Array().All(ss => t.SubsystemName.Contains(ss)))
.AsQueryable<TagsDeleted>();
但这不容易阅读,我会重构以下内容,以明确“我创建一个列表,并想要删除一些项目”:
var words = this.SubSystemTextBox.Text.CSL2Array();
var list = Query.ToList<TagsDeleted>();
list.RemoveAll(t => !words.All(word => t.SubsystemName.Contains(word)));
Query = list.AsQueryable<TagsDeleted>();