Как использовать ссылку WCF с моделью MVC3 (бритва)? - PullRequest
2 голосов
/ 07 июня 2011

У меня есть веб-сайт WCF Service и MVC3 (бритва).Все мои данные взяты из WCF Service.У меня есть свои контроллеры и представления, но как мне использовать модель с этой структурой?

на данный момент я вызываю свой метод из службы с DataController, и я вызывал их в контроллерах.

Ответы [ 3 ]

2 голосов
/ 07 июня 2011

Хотите ли вы получить доступ к службе WCF с вашей модели? Ой ...

Придерживайтесь контроллера. Контроллеры взаимодействуют со службами, модели - нет.

1 голос
/ 07 июня 2011

1.Вы создали веб-ссылку на свой сервис - и объекты были созданы в соответствии с договором на обслуживание данных.Эта сущность - ваша модель.

2.Если вам нужно украсить его некоторыми специфическими атрибутами ASP.NET MVC - вы можете создавать другие объекты с такими же свойствами, создавать хранилище, которое получает данные от службы и преобразовывать их в ваши объекты и предоставлять только необходимые методы.- это хорошая практика.

3. Кроме того, если вы выполняете какое-то преобразование и имеете некоторые бизнес-правила - вы можете создать класс бизнес-логики, который будет вызывать метод репозитория, проверять и выполнять бизнес-правила.Но если вы только отображаете данные из сервиса - не создавайте логический бизнес-класс.

4. Вы вызываете свои методы логики / репозитория из контроллера и передаете их для просмотра.View отвечает только за отображение модели, никогда не вызывайте из нее сервисы!

0 голосов
/ 07 июня 2011

Лучшее решение - создать классы Service и Repository.Например, если вы получили модель Person, создайте класс PersonRepository, который будет выполнять всю работу, связанную с вызовом службы wcf и получением данных.Класс PersonService будет служить контейнером бизнес-логики, который будет иметь ссылку на класс Repository, когда понадобятся некоторые данные из хранилища.В этом случае у вас будет сильная слабая связь между вашими моделями, бизнес-логикой и хранилищем сервисов wcf.Класс PersonService будет служить валидатором, контейнером бизнес-логики и т. Д.

...