База данных first

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

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

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

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

Видео: WMV | MP4 | WMV (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 в качестве источника данных

    Выбор источника данных

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

    Sql Express Connection DF

    DF подключения к LocalDB

  • Нажмите кнопку "ОК", и вам будет предложено создать новую базу данных, нажмите кнопку "Да"

    Диалоговое окно создания базы данных

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

  • Скопируйте следующий код 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. Создание приложения

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

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

 

3. Модель реконструирования

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

  • Проект —> добавление нового элемента...

  • Выберите "Данные " в меню слева, а затем ADO.NET модель данных сущности

  • Введите имя BloggingModel и нажмите кнопку "ОК"

  • Откроется мастер модели данных сущностей.

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

    Мастер, шаг 1

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

    Мастер, шаг 2

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

    Шаг 3 мастера

 

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

Начальная модель

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

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

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

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

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

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

  • Выберите "Шаблоны в Интернете " в меню слева и найдите DbContext

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

    Шаблон DbContext

 

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

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

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

Созданные классы 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. Работа с изменениями базы данных

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

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

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

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

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

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

    Мастер обновления

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

 

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

Модель обновлена

Сводка

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