Я использую 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?
Entity Framework 5 - Как создать классы POCO из существующей базы данных
Ответ 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 для создания кода уровня объекта".