ASP.NET MVC - удалить зависимость от DAL в графическом интерфейсе - PullRequest
0 голосов
/ 14 декабря 2010

Я создаю веб-приложение MVC, которое состоит из 3 проектов.Один для графического интерфейса, один для BusinessLogic и один для доступа к данным.

Для моего доступа к данным у меня есть сгенерированный файл EF, и поэтому у меня есть сгенерированный класс с именем «Клиент».Чтобы сделать атрибуты проверки для этого класса, мне нужно создать MetaDataType (который должен быть сделан в том же пространстве имен, и поэтому я обязан делать это на уровне DAL) - делая это, я обращаюсь к слою доступа к данным из моего GUIчто портит всю идею разделения проекта, потому что мой графический интерфейс теперь ссылается как на мой уровень DAL, так и на уровень BL.Можно ли как-нибудь разделить слои GUI и DAL, но при этом использовать атрибуты валидации, такие как [Обязательный] и т. Д.?

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

Ответы [ 2 ]

2 голосов
/ 14 декабря 2010

Если вы используете .NET 4 (EF 2), вы можете генерировать объекты POCO в отдельной библиотеке классов, которая может использоваться всеми проектами.Это не потребует зависимости от DAL.См. Мой предыдущий ответ:

Многоуровневое приложение ASP.Net - Совместное использование модели данных сущностей между слоями

Особенно 3. Шаблоны POCO, включая способ перехода в отдельный проект: http://blogs.msdn.com/adonet/pages/feature-ctp-walkthrough-poco-templates-for-the-entity-framework.aspx

2 голосов
/ 14 декабря 2010

Вот что такое ViewModels .Но это означает, что у вас будет новый набор DTO для связи между контроллером представления и ... Это хорошо, IMHO, поскольку ваши представления не должны ничего знать о реальной модели предметной области.

Относительно всех различных способовчтобы ваши взгляды связывались с моделью, взгляните на this .

...