linq查询运算符'任何'不支持

时间:2011-02-28 18:10:06

标签: linq silverlight-4.0 linq-to-entities

使用以下LINQ查询:

EntityQuery<Questions> query = context.GetQuestionsQuery()
                  .Where(o => o.SurveyQuestions.Any(o2 => o2.SurveyID == 3));

然而,当使用LINQPad时...它工作正常。

Questions.Where(o => o.SurveyQuestions.Any(o2 => o2.SurveyID == 3)).Dump();

这是Silverlight的限制吗?如果是这样我怎样才能以银光友好的方式做同样的事情?稍微调查一下,这看起来就像是在DomainContext.Load操作中引起的。

  

网页错误详情

     

用户代理:Mozilla / 4.0(兼容;   MSIE 7.0; Windows NT 5.1;三叉戟/ 4.0;   .NET CLR 2.0.50727; .NET CLR   3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322)   时间戳:2011年2月28日星期一18:06:11   UTC

     

消息:未处理的错误   Silverlight 2应用程序查询   不支持运算符'Any'。在   System.ServiceModel.DomainServices.Client.WebDomainClient 1.BeginQueryCore(EntityQuery query, AsyncCallback callback, Object userState) at System.ServiceModel.DomainServices.Client.DomainClient.BeginQuery(EntityQuery query, AsyncCallback callback, Object userState) at System.ServiceModel.DomainServices.Client.DomainContext.Load(EntityQuery query, LoadBehavior loadBehavior, Action 1回调,对象userState)
  在   System.ServiceModel.DomainServices.Client.DomainContext.Load [TEntity](EntityQuery 1 query, LoadBehavior loadBehavior, Action 1回调,对象userState)
  在   System.ServiceModel.DomainServices.Client.DomainContext.Load [TEntity](EntityQuery 1 query, Action 1回调,对象   userState)at   ReadmissionTrackingApplication.Client.ViewModel.QuestionairreViewModel.ReceiveNewQuestionairreRequest(fnReadmitPatientList_Result   请求)   GalaSoft.MvvmLight.Helpers.WeakAction 1.Execute(T parameter) at GalaSoft.MvvmLight.Helpers.WeakAction 1.ExecuteWithObject(对象   参数)at   GalaSoft.MvvmLight.Messaging.Messenger.SendToList [TMessage](TMessage   消息,IEnumerable`1列表,类型   messageTargetType,Object token)at   GalaSoft.MvvmLight.Messaging.Messenger.SendToTargetOrType [TMessage](TMessage   消息,输入messageTargetType,   对象令牌)   GalaSoft.MvvmLight.Messaging.Messenger.Send [TMessage](TMessage   消息)   ReadmissionTrackingApplication.Client.ViewModel.PrimarySearchViewModel.OpenSurveyCommand_Execute()   在   ReadmissionTrackingApplication.Client.ViewModel.PrimarySearchViewModel.b__2()   在   GalaSoft.MvvmLight.Command.RelayCommand.Execute(对象   参数)at   System.Windows.Controls.Primitives.ButtonBase.ExecuteCommand()   在   System.Windows.Controls.Primitives.ButtonBase.OnClick()   在   System.Windows.Controls.Button.OnClick()   在   System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs   吃   System.Windows.Controls.Control.OnMouseLeftButtonUp(控制   ctrl,EventArgs e)at   MS.Internal.JoltHelper.FireEvent(IntPtr的   unmanagedObj,IntPtr unmanagedObjArgs,   Int32 argsTypeIndex,Int32   actualArgsTypeIndex,String eventName)   行:1个字符:1代码:0 URI:   http://localhost/readdtrackapp/Silverlight.js

1 个答案:

答案 0 :(得分:1)

因为并非EntityQuery类支持所有LINQ查询。只有以下运算符才能与EntityQuery一起使用:

  • 其中
  • OrderBy
  • ThenBy
  • 跳过

http://msdn.microsoft.com/en-us/library/system.servicemodel.domainservices.client.entityquery%28v=vs.91%29.aspx