Как обеспечить функциональность DISTINCT в WCF - PullRequest
0 голосов
/ 10 октября 2011

У меня есть служба данных WCF поверх EF (старомодный edmx; не кодовый первый), который имеет миллионы строк данных.Я ограничиваю набор результатов до 500 строк.Пока все хорошо!

Я хочу дать потребителю возможность «углубиться» в данные.В идеале потребительский код должен запускать что-то вроде select distinct Province from моего сервиса, пользователь будет выбирать состояние, а затем код будет запускать select distinct Zip where Province == p (мой бизнес-домен сильно отличается, но, надеюсь, вы получите картину!).* Очевидно, я не могу получить все и работать на стороне клиента.Как мне предоставить эту возможность в сервисе?У меня нет EntitySet "Провинции" или "Zips" выставлены в сервисе.Должен ли я расширить класс MyEntities и попытаться смоделировать эти наборы там?Или есть более простой способ показать другие коллекции, кроме тех, которые автоматически выставляются из Entity Framework?

Надеюсь, вопрос имеет смысл ...

ОБНОВЛЕНИЕ: Я думаю, что я вызвалпутаница, когда я упомянул, что я использую сервис WCF.Я на самом деле использую WCF Data Service и пытаюсь предоставить оболочку OData поверх Entity Framework 4.1.Надеюсь, это проясняет вопрос ...

1 Ответ

0 голосов
/ 10 октября 2011

Рассматривали ли вы отказ от своего якобы общепризнанного общеупотребительного и действующего стандарта?

Довольно легко выставить ODATA из .NET, и это позволяет пользователю углубиться в детализацию.Тогда все, что вам нужно, - это некоторые преобразования, чтобы представить такие элементы, как Province или Zip, как в разумной модели данных, и все готово;)

Хорошая вещь о OData состоит в том, что она позволяет вам легко передавать LINQ на сервер иделать прогнозы (получить все подтверждения от клиентов, у которых имя клиента начинается с «а») и не обязательно иметь дело с соответствующими лицами.

...