Entity Framework - создание классов
У меня есть существующая база данных. Я надеялся, что есть способ генерировать файлы классов из этой базы данных. Однако, похоже, я вижу, как много генерирует базу данных из файлов классов.
Есть ли способ генерировать файлы классов из существующей базы данных с использованием Entity Framework? Если да, то как? Может ли кто-нибудь указать мне на учебник?
Ответы
Ответ 1
1) Сначала вам нужно сгенерировать модель EDMX
, используя вашу базу данных. Для этого вы должны добавить новый проект в свой проект:
- Выберите
ADO.NET Entity Data Model
в списке Шаблоны.
- На странице "Выбор модели" выберите вариант "Создать из базы данных" и нажмите "Далее".
- Выберите свою базу данных.
- На странице "Выбор объектов базы данных" проверьте таблицы. Выберите "Виды" или "Хранимые процедуры", если вам нужно.
Итак, теперь у вас есть файл Model1.edmx
в вашем проекте.
2) Для создания классов с использованием вашей модели:
- Откройте конструктор моделей
EDMX
.
- На поверхности дизайна Щелкните правой кнопкой мыши → Добавить элемент генерации кода...
- Выберите онлайн-шаблоны.
- Выберите
EF 4.x DbContext Generator for C#
.
- Нажмите "Добавить".
Обратите внимание, что в проект добавляются два элемента:
-
Model1.tt
(Этот шаблон генерирует очень простые классы POCO для каждого объекта в вашей модели)
-
Model1.Context.tt
(Этот шаблон генерирует производный DbContext для использования для запросов и постоянных данных)
3) Пример чтения/записи данных:
var dbContext = new YourModelClass(); //class derived from DbContext
var contacts = from c in dbContext.Contacts select c; //read data
contacts.FirstOrDefault().FirstName = "Alex"; //edit data
dbContext.SaveChanges(); //save data to DB
Не забывайте, что вам нужна 4.x версия EntityFramework. Вы можете скачать EF 4.1 здесь: Entity Framework 4.1.
Ответ 2
Я нашел очень приятное решение. Microsoft выпустила бета-версию Entity Framework Power Tools: Entity Framework Power Tools Beta 2
Здесь вы можете создавать классы POCO, производные DbContext и Code First для существующей базы данных в несколько кликов. Это очень приятно!
После установки в Visual Studio будут добавлены некоторые параметры контекстного меню.
Щелкните правой кнопкой мыши на проекте С#. Выберите Entity Framework- > Обратный код инженера First (генерирует классы POCO, производные DbContext и Code First для существующей базы данных):
![Visual Studio Context Menu]()
Затем выберите свою базу данных и нажмите "ОК". Все это! Это очень легко.
Ответ 3
- Откройте модель EDMX
- Щелкните правой кнопкой мыши → Обновить модель из браузера → Сохраненная процедура → Выберите хранимую процедуру → Готово
- См. раздел "Браузер модели" рядом с обозревателем решений.
- Перейдите в раздел Импорт функций → Щелкните правой кнопкой мыши по сохраненной процедуре → Добавить функцию импорта
- Выберите Entities from Return a Collection of → Выберите имя своей сущности из раскрывающегося списка
- Создайте свое решение.
Ответ 4
Модель EDMX не будет работать с EF7, но я нашел продукт Community/Professional, который кажется очень мощным:
http://www.devart.com/entitydeveloper/editions.html