База данных в первую очередь
В этом видео и пошаговом руководстве приведены общие сведения о разработке базы данных с помощью Entity Framework. База данных сначала позволяет перепроектировать модель из существующей базы данных. Модель хранится в файле EDMX (расширение .edmx) и может просматриваться и изменяться в конструкторе Entity Framework. Классы, взаимодействующие с приложением, автоматически создаются из EDMX-файла.
Просмотреть видео
Это видео содержит общие сведения о разработке базы данных с помощью Entity Framework. База данных сначала позволяет перепроектировать модель из существующей базы данных. Модель хранится в файле EDMX (расширение .edmx) и может просматриваться и изменяться в конструкторе Entity Framework. Классы, взаимодействующие с приложением, автоматически создаются из EDMX-файла.
Представляет: Роуэн Миллер (Rowan Miller)
Предварительные требования
Для выполнения этого пошагового руководства необходимо установить по крайней мере 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 в качестве источника данных
Подключение в LocalDB или SQL Express, в зависимости от того, какой вы установили, и введите DatabaseFirst.Blogging в качестве имени базы данных
Нажмите кнопку "ОК ", и вам будет предложено создать новую базу данных, нажмите кнопку "Да"
Новая база данных появится на сервере Обозреватель, щелкните его правой кнопкой мыши и выберите новый запрос
Скопируйте следующий 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 в качестве имени и нажмите кнопку "ОК"
Откроется мастер модели данных сущностей
Выберите " Создать из базы данных " и нажмите кнопку "Далее"
Выберите подключение к базе данных, созданной в первом разделе, введите BloggingContext в качестве имени строка подключения и нажмите кнопку "Далее".
Щелкните поле проверка box рядом с "Таблицы", чтобы импортировать все таблицы и нажмите кнопку "Готово"
После завершения процесса обратного инженера в проект добавляется новая модель и открывается для просмотра в конструкторе 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 в качестве имени и нажмите кнопку "Добавить".
4. Чтение и запись данных
Теперь, когда у нас есть модель, пришло время использовать ее для доступа к некоторым данным. Классы, которые будут использоваться для доступа к данным, создаются автоматически на основе EDMX-файла.
Снимок экрана из Visual Studio 2012, если вы используете Visual Studio 2010, BloggingModel.tt и BloggingModel.Context.tt файлы будут находиться непосредственно под проектом, а не вложенными в файл EDMX.
Реализуйте метод 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 на основе существующей базы данных. Затем мы использовали эту модель для чтения и записи некоторых данных из базы данных. Наконец, мы обновили модель, чтобы отразить изменения, внесенные в схему базы данных.