Услуги RIA: Должен ли я вернуть IQueryable или IList? и пометить как INVOKE? (Следуя шаблонам обслуживания и репозитория) - PullRequest
1 голос
/ 06 января 2011

Я изучаю службы RIA и понимаю, что происходит. Но если я хочу использовать Сервисы RIA, такие как Сервисный уровень, который вызывает уровень хранилища, тогда я не должен возвращать IList и помечать свои методы как INVOKE?

Мне кажется, что это стандартный вызов уровня сервиса для уровня репозитория. Где репозиторий возвращает IQueryable, а сервис возвращает IList

Я очень хорошо знаком с этими шаблонами (служба и репозиторий), но хотел бы использовать службы RIA, как это.

В противном случае Silverlight в действительности всегда будет вызывать каталог репозитория, поскольку он возвращает IQueryable.

Моя идея, хотя я хотел бы получить некоторую обратную связь - создать еще один слой в службах ria, который возвращает IQueryable и т. Д., И мы называем это шаблоном Repository ..., а затем получить методы Ria Services (Domain Service), которые всегда возвращают IList доменный класс и отметьте «ALL» эти методы как INVOKE, чтобы нам не нужно было возвращать IQueryable.

Это звучит хорошо на практике? Очень ценю любые отзывы

Заранее спасибо

1 Ответ

2 голосов
/ 06 января 2011

Если вы используете «Запуски» вместо «Запросы», вы упускаете некоторые интересные функции RIA, такие как новый DomainCollectionView, для работы которого требуется LoadOperation.В действительности, независимо от того, возвращают ли ваши методы IList или IQueryable, выполнение выражения по-прежнему откладывается на сервер, поэтому с точки зрения клиента это, вероятно, не имеет большого значения.

В противном случае, затем silverlightна самом деле всегда будет вызывать каталог репозитория, так как он возвращает IQueryable.

Клиенту не нужно это знать, так что же это меняет?Это как и любая другая реализация репозитория / службы - уровень перенаправления между клиентом и данными, чтобы избавить себя от головной боли в случае будущих изменений в системе.

...