【发布时间】:2009-11-10 23:58:33
【问题描述】:
考虑这个 LINQ To SQL 查询。其目的是获取搜索词的字符串 [] 并将这些词应用于 SQL 表上的一堆不同字段:
string[] searchTerms = new string[] {"hello","world","foo"};
List<Cust> = db.Custs.Where(c =>
searchTerms.Any(st => st.Equals(c.Email))
|| searchTerms.Any(st => st.Equals(c.FirstName))
|| searchTerms.Any(st => st.Equals(c.LastName))
|| searchTerms.Any(st => st.Equals(c.City))
|| searchTerms.Any(st => st.Equals(c.Postal))
|| searchTerms.Any(st => st.Equals(c.Phone))
|| searchTerms.Any(st => c.AddressLine1.Contains(st))
)
.ToList();
引发异常:
除了 Contains() 运算符外,查询运算符的 LINQ to SQL 实现中不能使用本地序列
问题: 为什么会引发此异常,如何重写查询以避免此异常?
【问题讨论】:
标签: linq linq-to-sql