C# 用于匹配多个关键字的LINQ2SQL查询

C# 用于匹配多个关键字的LINQ2SQL查询,c#,linq-to-sql,windows-phone-8,C#,Linq To Sql,Windows Phone 8,在这种情况下,我需要用逗号打断用户的输入字符串,并查询本地数据库以查找至少有一个子字符串匹配的记录 到目前为止,我在这方面还没有成功,以下内容不起作用,并抛出了不支持的异常: DBRef db = new DBRef { ObjectTrackingEnabled = false }; var ex = Query.ToLower( ).Split(new string[] { ", ", "," }, StringSplitOptions.RemoveEmptyEntries); var re

在这种情况下,我需要用逗号打断用户的输入字符串,并查询本地数据库以查找至少有一个子字符串匹配的记录

到目前为止,我在这方面还没有成功,以下内容不起作用,并抛出了
不支持的异常

DBRef db = new DBRef { ObjectTrackingEnabled = false };
var ex = Query.ToLower( ).Split(new string[] { ", ", "," }, StringSplitOptions.RemoveEmptyEntries);
var result = (from a in db.Table where ex.Any(word => a.Title.ToLower().Contains(word)) select a).Take(50);
例外情况详情:

An exception of type 'System.NotSupportedException' occurred in System.Data.Linq.ni.dll and wasn't handled before a managed/native boundary
System.NotSupportedException: Local sequence cannot be used in LINQ to SQL implementations of query operators except the Contains operator.
   at System.Data.Linq.SqlClient.QueryConverter.CoerceToSequence(SqlNode node)
   at System.Data.Linq.SqlClient.QueryConverter.VisitQuantifier(Expression sequence, LambdaExpression lambda, Boolean isAny)
   at System.Data.Linq.SqlClient.QueryConverter.VisitSequenceOperatorCall(MethodCallExpression mc)
   at System.Data.Linq.SqlClient.QueryConverter.VisitMethodCall(MethodCallExpression mc)
   at System.Data.Linq.SqlClient.QueryConverter.VisitInner(Expression node)
   at System.Data.Linq.SqlClient.QueryConverter.VisitExpression(Expression exp)
   at System.Data.Linq.SqlClient.QueryConverter.VisitWhere(Expression sequence, LambdaExpression predicate)
   at System.Data.Linq.SqlClient.QueryConverter.VisitSequenceOperatorCall(MethodCallExpression mc)
   at System.Data.Linq.SqlClient.QueryConverter.VisitMethodCall(MethodCallExpression mc)
   at System.Data.Linq.SqlClient.QueryConverter.VisitInner(Expression node)
   at System.Data.Linq.SqlClient.QueryConverter.VisitTake(Expression sequence, Expression count)
   at System.Data.Linq.SqlClient.QueryConverter.VisitSequenceOperatorCall(MethodCallExpression mc)
   at System.Data.Linq.SqlClient.QueryConverter.VisitMethodCall(MethodCallExpression mc)
   at System.Data.Linq.SqlClient.QueryConverter.VisitInner(Expression node)
   at System.Data.Linq.SqlClient.QueryConverter.ConvertOuter(Expression node)
   at System.Data.Linq.SqlClient.SqlProvider.BuildQuery(Expression query, SqlNodeAnnotations annotations)
   at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
   at System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
System.Data.Linq.ni.dll中发生类型为“System.NotSupportedException”的异常,在托管/本机边界之前未处理该异常
System.NotSupportedException:在查询运算符的LINQ到SQL实现中不能使用本地序列,但Contains运算符除外。
位于System.Data.Linq.SqlClient.QueryConverter.ImpresseToSequence(SqlNode节点)
位于System.Data.Linq.SqlClient.QueryConverter.VisitQuantifier(表达式序列,LambdaExpression lambda,布尔值isAny)
在System.Data.Linq.SqlClient.QueryConverter.VisitSequenceOperatorCall(MethodCallExpression mc)中
位于System.Data.Linq.SqlClient.QueryConverter.VisitMethodCall(MethodCallExpression mc)
位于System.Data.Linq.SqlClient.QueryConverter.VisitInner(表达式节点)
位于System.Data.Linq.SqlClient.QueryConverter.VisitExpression(表达式exp)
位于System.Data.Linq.SqlClient.QueryConverter.VisitWhere(表达式序列,LambdaExpression谓词)
在System.Data.Linq.SqlClient.QueryConverter.VisitSequenceOperatorCall(MethodCallExpression mc)中
位于System.Data.Linq.SqlClient.QueryConverter.VisitMethodCall(MethodCallExpression mc)
位于System.Data.Linq.SqlClient.QueryConverter.VisitInner(表达式节点)
位于System.Data.Linq.SqlClient.QueryConverter.VisitTake(表达式序列,表达式计数)
在System.Data.Linq.SqlClient.QueryConverter.VisitSequenceOperatorCall(MethodCallExpression mc)中
位于System.Data.Linq.SqlClient.QueryConverter.VisitMethodCall(MethodCallExpression mc)
位于System.Data.Linq.SqlClient.QueryConverter.VisitInner(表达式节点)
位于System.Data.Linq.SqlClient.QueryConverter.ConvertOuter(表达式节点)
位于System.Data.Linq.SqlClient.SqlProvider.BuildQuery(表达式查询、SqlNodeAnnotations注释)
位于System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(表达式查询)
位于System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator()
位于System.Collections.Generic.List`1..ctor(IEnumerable`1集合)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)

是否可以在Windows Phone上执行此操作?如果是,则如何执行?

哪一行引发异常?您拥有的linq查询在linq to对象中工作。异常是否也会告诉您什么方法调用不受支持?当我试图通过从中获取大量项来执行查询时,会发生异常。我还提供了详细的异常信息。请看一下这个问题。当然你可以根据自己的需要来调整。