База данных в первую очередь

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

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

Это видео содержит общие сведения о разработке базы данных с помощью Entity Framework. База данных сначала позволяет перепроектировать модель из существующей базы данных. Модель хранится в файле 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

  • Представление —> Обозреватель сервера

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

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

    Select Data Source

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

    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. Создание приложения

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

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

 

3. Модель обратного инженера

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

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

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

  • Введите bloggingModel в качестве имени и нажмите кнопку "ОК"

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

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

    Wizard Step 1

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

    Wizard Step 2

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

    Wizard Step 3

 

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

Model Initial

Дополнительные шаги в 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 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. Работа с изменениями базы данных

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

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

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

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

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

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

    Refresh Wizard

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

 

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

Model Updated

Итоги

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