Поскольку я попытался немного поэкспериментировать с этим, я понял, что такие методы, как First, Any и Count, нельзя использовать с LINQ to Entities (и, я полагаю, даже NHibernate) поверх WCF RIA Services, потому что они 'не определены в самом IQueryable
, но, например, являются методами расширения, определенными в пространстве имен System.Linq
.Именно поэтому это отображается как исключение времени выполнения, а не ошибка времени компиляции.Здесь можно использовать только те методы расширения, которые есть в System.ServiceModel.DomainServices.Client
(например, Where, Skip, Take, OrderBy и т. Д.).
Это связано с объектами EntityQuery, потому чтонеобходимо создать и отправить обратно на сервер, тогда как для коллекций (таких как m_ParentDomainContext.Parents
в вашем случае) вы можете свободно использовать методы расширения System.Linq
.
Для реализации этой функциональности,Я предлагаю, как сказал Томас Левеск, выставить его с сервера, чтобы получить только те данные, которые вам нужны, или, альтернативно, вы можете составить запрос, используя доступные конструкции (в System.ServiceModel.DomainServices.Client
), а затем применить другойфильтрует полученные данные (где вы можете использовать методы расширения из пространства имен System.Linq
).
PS: я пробовал это как с классической Entity Framework, так и с Entity Framework CodeFirst, и получил те же результаты.
Надеюсь, это поможет