Меню Закрыть

Entity framework database first

Содержание

Многие разработчики добавляют в приложения код доступа к данным, когда база данных уже существует. Entity Framework поддерживает подход для работы с существующими базами данных, который называется , с самого своего первого появления (остальные подходы Model-First и Code-First были добавлены позже в версиях EF 4 и EF 4.1 соответственно).

Подход Database-First подразумевает создание графической модели Edmx из существующей базы данных. В этой статье описаны шаги для работы с этим подходом. Мы будем использовать все тот же пример веб-приложения ASP.NET, который использовали при рассмотрении подходов Code-First и Model-First.

Создание модели данных

Первым шагом при работе с подходом Database-First является проектирование базы данных. Фактически подход Database-First является противоположным подходу Model-First: при подходе Model-First мы сначала создаем графическую модель, а затем на ее основе генерируем или изменяем базу данных и наоборот, при подходе Database-First мы сначала создаем и проектируем базу данных, а затем на ее основе создаем графическую модель. Мы не будем создавать новую базу данных, а воспользуемся базой данных MyShop1, которую мы сгенерировали в предыдущей статье. Если вы хотите ознакомиться с деталями создания баз данных в СУБД SQL Server, то можете посетить раздел нашего сайта “SQL Server 2012 и T-SQL”.

Добавьте новый проект библиотеки классов в ваше решение. Для этого в окне Solution Explorer щелкните правой кнопкой мыши по имени решения и выберите в контекстном меню команду Add —> New Project. Выберите шаблон библиотеки классов (Class Library), назовите его DatabaseFirst и нажмите кнопку Add.

Щелкните по имени созданного проекта правой кнопкой мыши в окне Solution Explorer и выберите в контекстном меню команду Add —> New Item. В открывшемся диалоговом окне найдите шаблон ADO NET Entity Data Model на вкладке Data, задайте ему произвольное имя и щелкните по кнопке Add.

После этого в открывшемся окне Entity Data Model Wizard нужно выбрать подход для работы с Entity Framework. Выберите вариант EF Designer from database который предполагает создание модели EDMX из существующей базы данных, что подразумевает под собой использование подхода Database-First.

В открывшемся диалоговом окне настройте подключение к базе данных MyShop1 и нажмите кнопку Next (Далее).

В следующем окне выберите версию Entity Framework 6.x и нажмите кнопку Next.

Visual Studio извлекает информацию из базы данных. Через некоторое время, мастер Entity Data Model Wizard попросит вас выбрать элементы базы данных, которые вы хотите использовать в вашем приложении, как показано на рисунке:

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

Обратите внимание на наличие некоторых настроек в этом окне. Настройка “Pluralize or singularize generated object names” позволяет настроить имена сгенерированных сущностных классов. Например, если бы у нас были в базе данных таблицы с именами Customers и Orders, и мы бы выбрали эту настройку, Entity Framework сгенерировал бы сущностные классы с именами Customer и Order (т.е. в единственном числе, используя правила английского языка). При этом свойства класса контекста, через которые можно загрузить коллекцию этих объектов, имели бы имена Customers и Orders. Настройка “Include foreign key columns in the model” позволяет включить поддержку проецирования отношений между таблицами.

Нажмите кнопку Finish (Готово). Entity Framework сгенерирует графическую модель EDMX для нашего примера.

Постройте решение, командой Build —> Solution, чтобы Visual Studio скомпилировало наше приложение и автоматически сгенерировало класс контекста для кода доступа к базе данных.

Работа с данными

Думаю как вы уже поняли, код работы с данными в Entity Framework не зависит от выбранного подхода к проектированию модели данных. Поэтому, чтобы просто не копировать разметку веб-формы Default.aspx и ее код обработчика, которые мы использовали в предыдущих статьях при рассмотрении Code-First и Model-First, давайте немного расширим функциональность этой формы и добавим возможность просматривать записи в таблице Customer.

Для этого, сначала добавьте ссылку на проект DatabaseFirst в проект веб-приложения и строку подключения из файла App.config проекта DatabaseFirst в файл Web.config проекта веб-приложения. Затем отредактируйте разметку веб-формы, как показано ниже:

Файл отделенного кода Default.aspx.cs с кодом обработчиков, выглядит следующим образом:

Запустив это приложение вы сможете добавлять данные в таблицу Customer и автоматически наблюдать результат этих изменений:

Итак, на этом мы заканчиваем рассмотрение базовых подходов для работы с Entity Framework. В примерах последующих статей мы будем использовать в основном подход Code-First, хотя вас никто не ограничивает в использовании наиболее удобного подхода.

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

Следующее видео и пошаговое руководство познакомят вас с разработкой на основе базы данных в Entity Framework. This video and step-by-step walkthrough provide an introduction to Database First development using Entity Framework. Такой подход дает возможность реконструировать модель по существующей базе. Database First allows you to reverse engineer a model from an existing database. Модель хранится в EDMX-файле (расширение .emdx), и её можно просмотреть и изменить в Entity Framework Designer. The model is stored in an EDMX file (.edmx extension) and can be viewed and edited in the Entity Framework Designer. Классы, с которыми вы взаимодействуете в приложении, автоматически создаются из файла EDMX. The classes that you interact with in your application are automatically generated from the EDMX file.

Читайте также:  Установка принтера кэнон мф 3010

Просмотрите видео Watch the video

Это видео предоставляет общие сведения о разработке на основе базы данных в Entity Framework. This video provides an introduction to Database First development using Entity Framework. Такой подход дает возможность реконструировать модель по существующей базе. Database First allows you to reverse engineer a model from an existing database. Модель хранится в EDMX-файле (расширение .emdx), и её можно просмотреть и изменить в Entity Framework Designer. The model is stored in an EDMX file (.edmx extension) and can be viewed and edited in the Entity Framework Designer. Классы, с которыми вы взаимодействуете в приложении, автоматически создаются из файла EDMX. The classes that you interact with in your application are automatically generated from the EDMX file.

Представляет: Роуэн Миллер (Rowan Miller) Presented By: Rowan Miller

Видео: WMV | MP4 | WMV (ZIP) Video: WMV | MP4 | WMV (ZIP)

Предварительные требования Pre-Requisites

Для выполнения инструкций этого пошагового руководства необходимо установить Visual Studio 2010 или Visual Studio 2012. You will need to have at least Visual Studio 2010 or Visual Studio 2012 installed to complete this walkthrough.

Если вы используете Visual Studio 2010, также необходимо будет установить NuGet. If you are using Visual Studio 2010, you will also need to have NuGet installed.

1. Создание существующей базы данных 1. Create an Existing Database

Обычно при ориентировании на существующую базу данных она уже будет создана, но в этом пошаговом руководстве нам нужно создать базу данных для доступа. Typically when you are targeting an existing database it will already be created, but for this walkthrough we need to create a database to access.

Сервер базы данных, который устанавливается вместе с Visual Studio, отличается в зависимости от версии Visual Studio, которую вы установили: The database server that is installed with Visual Studio is different depending on the version of Visual Studio you have installed:

  • Если вы используете Visual Studio 2010, вы создадите базу данных SQL Express. If you are using Visual Studio 2010 you’ll be creating a SQL Express database.
  • Если вы используете Visual Studio 2012, вы создадите базу данных LocalDB. If you are using Visual Studio 2012 then you’ll be creating a LocalDB database.

Перейдем дальше и создадим базу данных. Let’s go ahead and generate the database.

Запустите Visual Studio. Open Visual Studio

Вид" —> "Обозреватель сервера View -> Server Explorer

Щелкните правой кнопкой мыши на Подключения к данным -> Добавить подключение… Right click on Data Connections -> Add Connection…

Если вы не подключались к базе данных с помощью "Обозревателя сервера" ранее, потребуется выбрать Microsoft SQL Server в качестве источника данных If you haven’t connected to a database from Server Explorer before you’ll need to select Microsoft SQL Server as the data source

Подключитесь к LocalDB или SQL Express, в зависимости от того, какую из них вы установили, и введите имя базы данных DatabaseFirst.Blogging Connect to either LocalDB or SQL Express, depending on which one you have installed, and enter DatabaseFirst.Blogging as the database name

Выберите ОК, и вам будет задан вопрос, хотите ли вы создать новую базу данных. Выберите Да Select OK and you will be asked if you want to create a new database, select Yes

Новая база данных появится в Обозревателе сервера. Щелкните ее правой кнопкой мыши и выберите Новый запрос The new database will now appear in Server Explorer, right-click on it and select New Query

Скопируйте следующий код SQL в новый запрос, а затем щелкните запрос правой кнопкой мыши и выберите Выполнить Copy the following SQL into the new query, then right-click on the query and select Execute

2. Создание приложения 2. Create the Application

Для простоты мы создадим простое консольное приложение, использующее подход, основывающийся на базе данных, для выполнения доступа к данным: To keep things simple we’re going to build a basic console application that uses the Database First to perform data access:

  • Запустите Visual Studio. Open Visual Studio
  • Файл —> Создать —> Проект…File -> New -> Project…
  • В меню слева выберите Windows и Консольное приложение Select Windows from the left menu and Console Application
  • Введите DatabaseFirstSample в поле "Имя" Enter DatabaseFirstSample as the name
  • Нажмите кнопку ОК Select OK

3. реконструирование модели 3. Reverse Engineer Model

Для создания нашей модели мы собираемся использовать конструктор Entity Framework Designer, который входит в состав Visual Studio. We’re going to make use of Entity Framework Designer, which is included as part of Visual Studio, to create our model.

Проект -> Добавить новый элемент… Project -> Add New Item…

Выберите Данные в меню слева и затем Модель ADO.NET EDM Select Data from the left menu and then ADO.NET Entity Data Model

Введите имя BloggingModel и нажмите кнопку ОК Enter BloggingModel as the name and click OK

Это откроет Мастер моделей EDM This launches the Entity Data Model Wizard

Выберите Создать из базы данных и нажмите кнопку Далее Select Generate from Database and click Next

Выберите подключение к базе данных, созданной в первом разделе, введите BloggingContext в качестве имени строки подключения и нажмите кнопку Далее . Select the connection to the database you created in the first section, enter BloggingContext as the name of the connection string and click Next

Читайте также:  Светодиодная мигалка на одном транзисторе

Установите флажок рядом с пунктом "таблицы", чтобы импортировать все таблицы, и нажмите кнопку "Готово". Click the checkbox next to ‘Tables’ to import all tables and click ‘Finish’

После завершения процесса реконструирования новая модель будет добавлена в проект и откроется для просмотра в Entity Framework Designer. Once the reverse engineer process completes the new model is added to your project and opened up for you to view in the Entity Framework Designer. В проект также будет добавлен файл App.config со сведениями о подключении к базе данных. An App.config file has also been added to your project with the connection details for the database.

Дополнительные действия в Visual Studio 2010 Additional Steps in Visual Studio 2010

При работе в Visual Studio 2010 необходимо выполнить некоторые дополнительные действия по обновлению до последней версии Entity Framework. If you are working in Visual Studio 2010 there are some additional steps you need to follow to upgrade to the latest version of Entity Framework. Обновление важно, так как оно предоставляет вам доступ к улучшенным API, которые гораздо проще в использовании, а также последние исправления ошибок. Upgrading is important because it gives you access to an improved API surface, that is much easier to use, as well as the latest bug fixes.

Сначала необходимо получить последнюю версию Entity Framework из NuGet. First up, we need to get the latest version of Entity Framework from NuGet.

  • **Проект —> Управление пакетами NuGet. ** *При отсутствии пункта *Управление пакетами NuGet… ** следует установить последнюю версию NuGetProject –> Manage NuGet Packages…If you don’t have the Manage NuGet Packages… option you should install the latest version of NuGet
  • Выберите вкладку В сети Select the Online tab
  • Выберите пакет EntityFramework Select the EntityFramework package
  • Нажмите кнопку Установить Click Install

Далее нам нужно переключить нашу модель, чтобы сгенерировать код, который использует API DbContext, появившийся в более поздних версиях Entity Framework. Next, we need to swap our model to generate code that makes use of the DbContext API, which was introduced in later versions of Entity Framework.

Щелкните правой кнопкой мыши на пустом месте модели в EF Designer и выберите Добавить элемент создания кода… Right-click on an empty spot of your model in the EF Designer and select Add Code Generation Item…

Выберите Шаблоны в Интернете из меню слева и выполните поиск DbContext Select Online Templates from the left menu and search for DbContext

Выберите генератор EF 5. x DbContext для C# , введите блоггингмодел в качестве имени и нажмите кнопку добавить . Select the EF 5.x DbContext Generator for C#, enter BloggingModel as the name and click Add

4. Чтение & запись данных 4. Reading & Writing Data

Теперь, когда у нас есть модель, настала пора использовать ее для доступа к каким-нибудь данным. Now that we have a model it’s time to use it to access some data. Классы, которые мы будем использовать для доступа к данным, автоматически создаются в зависимости от EDMX-файла. The classes we are going to use to access data are being automatically generated for you based on the EDMX file.

Этот снимок экрана из Visual Studio 2012. Если вы используете Visual Studio 2010, файлы BloggingModel.tt и BloggingModel.Context.tt будут лежать непосредственно в проекте, а не вложены в узел EDMX-файла. This screen shot is from Visual Studio 2012, if you are using Visual Studio 2010 the BloggingModel.tt and BloggingModel.Context.tt files will be directly under your project rather than nested under the EDMX file.

Реализуйте метод Main в файле Program.cs так, как показано ниже. Implement the Main method in Program.cs as shown below. Этот код создает новый экземпляр нашего контекста, а затем использует его для вставки новой записи блога. This code creates a new instance of our context and then uses it to insert a new Blog. Затем он использует запрос LINQ для извлечения из базы данных всех записей блога, упорядоченных в алфавитном порядке по названию. Then it uses a LINQ query to retrieve all Blogs from the database ordered alphabetically by Title.

Теперь можно запустить приложение и протестировать его. You can now run the application and test it out.

5. Работа с изменениями базы данных 5. Dealing with Database Changes

Теперь пора внести некоторые изменения в схему нашей базы данных. Когда мы внесём эти изменения, необходимо также обновить нашу модель, чтобы отразить эти изменения. Now it’s time to make some changes to our database schema, when we make these changes we also need to update our model to reflect those changes.

Первый шаг — это внесение некоторых изменений в схему базы данных. The first step is to make some changes to the database schema. В схему будет добавлена таблица пользователей. We’re going to add a Users table to the schema.

  • Щелкните правой кнопкой мыши базу данных DatabaseFirst.Blogging в Обозревателе сервера и выберите Создать запрос Right-click on the DatabaseFirst.Blogging database in Server Explorer and select New Query
  • Скопируйте следующий код SQL в новый запрос, а затем щелкните запрос правой кнопкой мыши и выберите Выполнить Copy the following SQL into the new query, then right-click on the query and select Execute
Читайте также:  Netsh winsock reset что это

Теперь, когда схема обновлена, пришло время внести изменения в модель. Now that the schema is updated, it’s time to update the model with those changes.

Щелкните правой кнопкой мыши пустое место в модели в конструкторе EF и выберите "обновить модель из базы данных. ", после чего запустится мастер обновления. Right-click on an empty spot of your model in the EF Designer and select ‘Update Model from Database…’, this will launch the Update Wizard

На вкладке "Добавление" мастера обновления установите флажок рядом с таблицами. Это означает, что мы хотим добавить новые таблицы из схемы. On the Add tab of the Update Wizard check the box next to Tables, this indicates that we want to add any new tables from the schema. На вкладке обновление отображаются все имеющиеся в модели таблицы, которые будут проверяться на наличие изменений во время обновления. На вкладках удаление отображаются все таблицы, которые были удалены из схемы и также будут удалены из модели в рамках обновления. Информация на этих двух вкладках автоматически обнаруживается и предоставляется только в информационных целях, поэтому изменить параметры нельзя. The Refresh tab shows any existing tables in the model that will be checked for changes during the update. The Delete tabs show any tables that have been removed from the schema and will also be removed from the model as part of the update. The information on these two tabs is automatically detected and is provided for informational purposes only, you cannot change any settings.

Нажмите кнопку "Готово" в мастере обновления. Click Finish on the Update Wizard

Теперь модель обновлена. Добавлена новая сущность "Пользователь", которая сопоставляется с таблицей пользователей, которую мы добавили в базу данных. The model is now updated to include a new User entity that maps to the Users table we added to the database.

Сводка Summary

В этом пошаговом руководстве мы рассмотрели разработку на основе базы данных, которая позволяет создать в EF Designer модель, основываясь на существующей базе. In this walkthrough we looked at Database First development, which allowed us to create a model in the EF Designer based on an existing database. Мы использовали эту модель для чтения и записи некоторых данных в базе. We then used that model to read and write some data from the database. Наконец, мы обновили модель для отражения изменений, внесенных в схему базы данных. Finally, we updated the model to reflect changes we made to the database schema.

Всем доброго времени суток. На связи Алексей Гулынин. В данной статье я бы хотел рассказать про первый подход, который используется в Entity Framework — Database First.Из названия понятно, что вначале у нас есть база данных. На основе базы данных у нас создаётся объектная модель (классы).

Давайте с нуля в Visual Studio создадим простую базу данных. База будет состоять из стран и их столиц. Далее на основе данной базы, используя подход Database First , создадим объектную модель и выведем на экран данные из базы.

Выбираем слева "Обозреватель серверов" — "Подключения данных" — "Добавить подключение". Если у вас данной вкладки нет, то в обозреватель серверов можно зайти через пункт меню "Вид" (либо сочетания клавиш "Ctrl + Alt + S"):

Мы будем работать с локальной базой данных localdb, которая встроена в Visual Studio:

Вводим имя "Countries". Так как у нас такой базы нет, то Visual Studio спросит о попытке её создать:

Теперь в обозревателе серверов мы видим, что подключились к базе данных:

Пока что у нас нет ни одной таблицы. Давайте создадим таблицу. Делать всё будем через редактор Visual Studio. Щёлкаем правой кнопкой мыши по "Таблицы" — "Добавить таблицу". Заполняем таблицу, как на скриншоте ниже. В конце нажимаем кнопку "Обновить", чтобы изменения в базе данных сохранились:

Давайте теперь внесём данные в нашу таблицу:

Занесите в таблицу следующие данные:

База данных у нас готова, таблица есть, данные в ней тоже есть. Настало время познакомиться с технологией Entity Framework Database First .

Добавляем в наш проект новый элемент:

Модель ADO.NET EDM :

Далее выбираем "Конструктор EF из базы данных":

Далее выбираем подключение, которое будет использоваться:

Далее добавляем объекты, которые необходимо включить в нашу модель:

При нажатии на кнопку "Готово" происходит магия Entity Framework, в результате которой будет создана модель и классы:


Обратим внимание на класс "CountriesEntities", который находится в файле "MyModel.Context.cs":

Это некое объектно-ориентированное представление базы данных или, по-другому, контекст . Tables — это и есть наша таблица в базе данных. Если бы у нас было несколько таблиц, то все они были бы здесь. Тип у них был бы DbSet<> .

name=CountriesEntities — это имя нашего подключения.

Контекст хранит все сущности из базы данных.

Теперь переходим к самому интересному (то, ради чего мы всё это проделали). Давайте выведем на экран информацию из базы данных:

Вот таким нехитрым способом, не написав ни одной строчки кода для взаимосвязи с базой данных, мы смогли получить все данные из неё.

В данной статье вы научились создавать локальную базу данных в Visual Studio, а также познакомились с подходом Database First.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.