Оператор запроса linq 'Any' Не поддерживается - PullRequest
1 голос
/ 28 февраля 2011

с использованием следующего запроса 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?Если да, то как я могу сделать то же самое с помощью Silverlight?При более подробном исследовании это выглядит так, как будто это вызвано операцией DomainContext.Load.

Сведения об ошибке веб-страницы

Пользовательский агент: Mozilla / 4.0 (совместимо; MSIE 7.0; Windows NT5.1; Trident / 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) Отметка времени: понедельник, 28 февраля2011 18:06:11 UTC

Сообщение: необработанная ошибка в Silverlight 2 Оператор запроса приложения «Любой» не поддерживается.в 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 обратный вызов, Object userState)
в System.ServiceModel.DomainServices.Client.DomainContext.Load [TEntity] (EntityQuery 1 query, LoadBehavior loadBehavior, Action 1 обратный вызов, Object userState)* at System.ServiceModel.DomainServices.Client.DomainContext.Load [TEntity] (EntityQuery 1 query, Action 1 обратный вызов, объект userState) в ReadmissionTrackingApplication.Client.ViewModel.QuestionairreViewModel.ReceiveNewQuestionairreReakakTackSigner_ReaderSignSigner.dll1019 * 1.ExecuteWithObject (параметр объекта) в GalaSoft.MvvmLight.Messaging.Messenger.SendToList [TMessage] (сообщение TMessage, список IEnumerable`1, введите messageTargetType, маркер объекта) в GalaSoft.MvvmLight.MessargeTOTTTTTestoMoSsenger(Сообщение 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 (объектный параметр) в System.Windows.Controls.Primitives.ButtonBase.Exrol.Windows. System.ContCom.Primitives.ButtonBase.OnClick () в System.Windows.Controls.Button.OnClick () в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp (MouseButtonEventArgs e) в System.Windows.Controls.Control.CututControlEventUnLousee) в MS.Internal.JoltHelper.FireEvent (IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName) Строка: 1 символ: 1 код: 0 URI: http://localhost/readdtrackapp/Silverlight.js

* 1022

1 Ответ

1 голос
/ 07 марта 2011

Это потому, что не все запросы LINQ поддерживаются классом EntityQuery. Только следующие операторы будут работать с EntityQuery:

  • Где
  • OrderBy
  • ThenBy
  • Пропустить
  • Возьмите

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

...