LINQ To SQL exception: Local sequence cannot be used in LINQ to SQL implementation of query operator

Posted by pcampbell on Stack Overflow See other posts from Stack Overflow or by pcampbell
Published on 2009-11-10T23:58:33Z Indexed on 2010/03/25 18:33 UTC
Read the original article Hit count: 1025

Filed under:
|

Consider this LINQ To SQL query. It's intention is to take a string[] of search terms and apply the terms to a bunch of different fields on the SQL table:

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();

An exception is raised:

Local sequence cannot be used in LINQ to SQL implementation of query operators except the Contains() operator

Question: Why is this exception raised, and how can the query be rewritten to avoid this exception?

© Stack Overflow or respective owner

Related posts about linq-to-sql

Related posts about LINQ