Database First

В этом видео и пошаговом руководстве представлены общие сведения о Database First разработке с помощью Entity Framework. Database First позволяет реконструировать модель из существующей базы данных. Модель хранится в EDMX-файле (расширение EDMX) и может быть просмотрена и изменена в Entity Framework Designer. Классы, с которыми вы взаимодействуете в приложении, автоматически создаются из файла EDMX.

Просмотреть видео

В этом видеоролике приводятся общие сведения о Database First разработке с помощью Entity Framework. Database First позволяет реконструировать модель из существующей базы данных. Модель хранится в EDMX-файле (расширение EDMX) и может быть просмотрена и изменена в Entity Framework Designer. Классы, с которыми вы взаимодействуете в приложении, автоматически создаются из файла EDMX.

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

Видео: WMVMP4WMV (ZIP)

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

для выполнения инструкций этого пошагового руководства необходимо установить по крайней мере Visual Studio 2010 или Visual Studio 2012.

если вы используете Visual Studio 2010, также необходимо установить NuGet .

 

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

Обычно при использовании существующей базы данных она будет создана, но в этом пошаговом руководстве необходимо создать базу данных для доступа к ней.

сервер базы данных, установленный с Visual Studio, отличается в зависимости от установленной версии Visual Studio.

  • при использовании Visual Studio 2010 будет создаваться база данных SQL Express.
  • если вы используете Visual Studio 2012, то будете создавать базу данных LocalDB .

 

Давайте создадим базу данных.

  • Открытие Visual Studio

  • Просмотр — Обозреватель сервера

  • Щелкните правой кнопкой мыши подключения к данным — Добавить подключение...

  • если вы не подключились к базе данных из обозреватель сервера, прежде чем нужно будет выбрать Microsoft SQL Server в качестве источника данных

    Select Data Source

  • Подключение либо LocalDB, либо SQL Express в зависимости от того, какой из них был установлен, и введите датабасефирст. блога в качестве имени базы данных.

    Sql Express Connection DF

    LocalDB Connection DF

  • Нажмите кнопку ОК , и появится запрос на создание новой базы данных, выберите Да .

    Create Database Dialog

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

  • скопируйте следующий SQL в новый запрос, щелкните запрос правой кнопкой мыши и выберите команду выполнить .

CREATE TABLE [dbo].[Blogs] (
    [BlogId] INT IDENTITY (1, 1) NOT NULL,
    [Name] NVARCHAR (200) NULL,
    [Url]  NVARCHAR (200) NULL,
    CONSTRAINT [PK_dbo.Blogs] PRIMARY KEY CLUSTERED ([BlogId] ASC)
);

CREATE TABLE [dbo].[Posts] (
    [PostId] INT IDENTITY (1, 1) NOT NULL,
    [Title] NVARCHAR (200) NULL,
    [Content] NTEXT NULL,
    [BlogId] INT NOT NULL,
    CONSTRAINT [PK_dbo.Posts] PRIMARY KEY CLUSTERED ([PostId] ASC),
    CONSTRAINT [FK_dbo.Posts_dbo.Blogs_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [dbo].[Blogs] ([BlogId]) ON DELETE CASCADE
);

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

Чтобы не усложнять, мы создадим простое консольное приложение, которое использует Database First для доступа к данным:

  • Открытие Visual Studio
  • Файл — создать > Project...
  • выберите Windows в меню слева и в консольном приложении .
  • Введите датабасефирстсампле в качестве имени
  • Нажмите кнопку ОК

 

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

мы будем использовать Entity Framework Designer, который входит в состав Visual Studio, для создания нашей модели.

  • Project — Добавить новый элемент...

  • выберите данные в меню слева, а затем ADO.NET EDM

  • Введите блоггингмодел в качестве имени и нажмите кнопку ОК .

  • Запустится мастер EDM

  • Выберите создать из базы данных и нажмите кнопку Далее .

    Wizard Step 1

  • Выберите подключение к базе данных, созданной в первом разделе, введите BloggingContext в качестве имени строки подключения и нажмите кнопку Далее .

    Wizard Step 2

  • Установите флажок рядом с пунктом "таблицы", чтобы импортировать все таблицы, и нажмите кнопку "Готово".

    Wizard Step 3

 

После завершения процесса реконструирования новая модель добавляется в проект и открывается для просмотра в Entity Framework Designer. В проект также добавлен файл App.config с подробными сведениями о соединении для базы данных.

Model Initial

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

при работе в Visual Studio 2010 необходимо выполнить некоторые дополнительные действия по обновлению до последней версии Entity Framework. Обновление важно, так как оно предоставляет доступ к улучшенной поверхности API, которая гораздо проще в использовании, а также последние исправления ошибок.

Сначала необходимо получить последнюю версию Entity Framework из NuGet.

  • Project — управление пакетами NuGet...если у вас нет параметра управление пакетами NuGet... следует установить последнюю версию NuGet
  • Выбор вкладки "в сети "
  • Выберите пакет EntityFramework
  • Щелкните Установить.

Далее необходимо поменять модель, чтобы создать код, который использует API DbContext, который появился в более поздних версиях Entity Framework.

  • Щелкните правой кнопкой мыши пустое место в модели в конструкторе EF и выберите пункт Добавить элемент создания кода...

  • В меню слева выберите шаблоны в Интернете и выполните поиск по запросу DbContext

  • Выберите генератор EF 5. x DbContext для C#, введите блоггингмодел в качестве имени и нажмите кнопку добавить .

    DbContext Template

 

4. чтение & данных записи

Теперь, когда у нас есть модель, пришло время использовать ее для доступа к некоторым данным. Классы, которые мы будем использовать для доступа к данным, создаются автоматически на основе файла EDMX.

этот снимок экрана относится к Visual Studio 2012, если вы используете Visual Studio 2010 файлы BloggingModel.tt и BloggingModel.Context.tt будут находиться непосредственно в проекте, а не вложены в EDMX-файл.

Generated Classes DF

 

Реализуйте метод Main в Program. cs, как показано ниже. Этот код создает новый экземпляр нашего контекста, а затем использует его для вставки нового блога. Затем он использует запрос LINQ для получения всех блогов из базы данных, упорядоченного в алфавитном порядке по названию.

class Program
{
    static void Main(string[] args)
    {
        using (var db = new BloggingContext())
        {
            // Create and save a new Blog
            Console.Write("Enter a name for a new Blog: ");
            var name = Console.ReadLine();

            var blog = new Blog { Name = name };
            db.Blogs.Add(blog);
            db.SaveChanges();

            // Display all Blogs from the database
            var query = from b in db.Blogs
                        orderby b.Name
                        select b;

            Console.WriteLine("All blogs in the database:");
            foreach (var item in query)
            {
                Console.WriteLine(item.Name);
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
    }
}

Теперь можно запустить приложение и протестировать его.

Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...

 

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

Пришло время внести некоторые изменения в схему базы данных, при внесении этих изменений нам также потребуется обновить нашу модель, чтобы отразить эти изменения.

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

  • Щелкните правой кнопкой мыши базу данных датабасефирст. блоги в обозреватель сервера и выберите создать запрос .
  • скопируйте следующий SQL в новый запрос, щелкните запрос правой кнопкой мыши и выберите команду выполнить .
CREATE TABLE [dbo].[Users]
(
    [Username] NVARCHAR(50) NOT NULL PRIMARY KEY,  
    [DisplayName] NVARCHAR(MAX) NULL
)

Теперь, когда схема обновлена, пришло время обновить модель с помощью этих изменений.

  • Щелкните правой кнопкой мыши пустое место в модели в конструкторе EF и выберите "обновить модель из базы данных...", после чего запустится мастер обновления.

  • На вкладке Добавить мастера обновления установите флажок рядом с таблицами. Это означает, что нам нужно добавить новые таблицы из схемы. На вкладке обновление отображаются все имеющиеся в модели таблицы, которые будут проверяться на наличие изменений во время обновления. На вкладках удаление отображаются все таблицы, которые были удалены из схемы и также будут удалены из модели в рамках обновления. Информация на этих двух вкладках автоматически обнаруживается и предоставляется только в информационных целях, поэтому изменить параметры нельзя.

    Refresh Wizard

  • Нажмите кнопку "Готово" в мастере обновления.

 

Теперь модель обновлена, чтобы включить новую сущность пользователя, сопоставленную с таблицей Users, добавленной в базу данных.

Model Updated

Сводка

В этом пошаговом руководстве мы рассматривали Database Firstную разработку, которая позволила нам создать модель в конструкторе EF на основе существующей базы данных. Затем мы использовали эту модель для чтения и записи данных из базы данных. Наконец, мы обновили модель, чтобы отразить изменения, внесенные в схему базы данных.