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 → Выберите имя своей сущности из раскрывающегося списка
  • Создайте свое решение.