Entity Framework 5 - Как создать классы POCO из существующей базы данных

Я использую VS 2012 и EF 5. У меня есть существующая база данных, в которой я хочу создавать классы POCO из существующей базы данных. Я выполнил следующие шаги, чтобы добавить в модель проект модели данных Entity Data ADO.NET. Я прошел через мастер, чтобы использовать существующую базу данных. Затем он создал файлы edmx и tt с открытым дизайнером. Однако я хочу создать объекты POCO и использовать их. Сайт Microsoft указывает, что генератор POCO Entity Framework устарел, и я должен использовать генератор DBContext. Я не могу понять, какие шаги я использую для создания классов POCO. Я вижу только дизайнер edmx. Мне даже не нужен файл edmx, а просто классы POCO. Как я могу создавать классы POCO из существующей базы данных с использованием EF 5 и VS 2012?

Ответ 1

Используйте EF 5.x DbContext Fluent Generator

Вы можете добавить его из онлайн-шаблонов:

  • Генерировать edmx из существующей базы данных
  • Выберите Add New Item
  • Поиск онлайн-шаблонов для POCO
  • Добавить EF 5.x DbContext Fluent Generator

Он добавит к вашему проекту три шаблона T4:

  • XXX.Context.tt - контекст, унаследованный от DbContext
  • XXX.Entities.tt - объекты POCO
  • XXX.Mappings.tt - текущие сопоставления для каждого объекта

НО вам нужно вручную настроить путь к вашей модели данных edmx. Каждый из этих шаблонов имеет строку string inputFile = @"$edmxInputFile$";. Здесь вы должны указать имя своего файла edmx:

string inputFile = @"Northwind.edmx";

Ответ 2

Процесс сделать это сейчас довольно оптимизирован, похоже. Шаги из принятого ответа теперь легко сделать из самого дизайнера EDMX. В принципе,

  • Сгенерируйте модель (edmx) из существующей базы данных, добавив в проект ADO.NET Entity Data Model (см. здесь для получения более подробной информации)
  • а затем

Откройте файл .edmx в конструкторе сущностей.

Щелкните правой кнопкой мыши пустую область на поверхности конструктора объектов и укажите пункт добавления кода.

В диалоговом окне "Добавить новый элемент" выберите "Онлайн-шаблоны" и введите "DBContext" в текстовом поле "Поиск онлайн-шаблонов".

Выберите подходящую версию для вашего шаблона (5.0, если вы хотите настроить таргетинг на Entity Framework 5.0).

Нажмите "ОК".

Это сделает всю работу, видимо. Приведенные здесь инструкции относятся к Online Templates, так как требуется установка EF 5.x DbContext Fluent Generator. Если вы уже установили его, нет необходимости искать его в онлайн-шаблонах, но в установленных шаблонах.

Для получения дополнительной информации вы можете проверить эту страницу, раздел "Использовать шаблон генератора DbContext для создания кода уровня объекта".