MVC3 и EF Data в первую очередь: каковы лучшие практики? - PullRequest
9 голосов
/ 05 июля 2011

Похоже, что основное внимание в MVC3 и EF4.1 сосредоточено вокруг «сначала кода» - я не могу найти какие-либо примеры или учебники, которые соответствуют следующим критериям:

  • используетсуществующая база данных SQLServer
  • имеет отдельные проекты для доступа к сети и данным (у нас будет несколько веб-приложений, использующих одни и те же классы доступа к данным)
  • рекомендации для проверки

Существует ли такой пример или учебник?Существуют ли какие-либо задокументированные «передовые практики» о том, как этого добиться, или обоснование НЕ структурирования решения таким образом?

1 Ответ

5 голосов
/ 05 июля 2011

Это довольно распространенный сценарий, и он зависит от того, хотите ли вы использовать файл EDMX для сопоставления или если вы хотите, чтобы сопоставление было определено в коде (как сначала код).

Оба сценария могут быть выполнены сначала как база данных

  • Вы создадите EDMX из существующей базы данных со встроенными инструментами EF в Visual Studio и будете использовать шаблон генератора DbContext T4 для получения классов POCO и производного класса DbContext
  • Вы загрузите EF Power Tools CTP , и вы будете использовать его функцию обратного инжиниринга для генерации отображения кода, классов POCO и контекста для вас

Ни один из этих подходов не добавит аннотации данных.Аннотации данных об объектах не должны использоваться для проверки клиента (это плохая практика), если вы не выполняете очень простые приложения.Обычно ваши взгляды имеют более продвинутые ожидания, и их проверка может отличаться от сущности.Например, представление вставки и представление обновления могут нуждаться в разных проверках, и это невозможно выполнить с одним набором аннотаций данных на объекте.В связи с этим вам следует переместить аннотации данных для проверки в специализированные модели представлений и преобразовать ваши сущности для просмотра моделей и наоборот (вы можете использовать AutoMapper , чтобы упростить это).

В любом случае это можно добавлять аннотации данных в сгенерированные классы через классы собеседников, но, как уже упоминалось, это не очень хорошая практика.

...