Сначала модель
В этом видео и пошаговом руководстве приведены общие сведения о разработке модели First с помощью Entity Framework. Модель Сначала позволяет создать новую модель с помощью конструктора Entity Framework, а затем создать схему базы данных из модели. Модель хранится в файле EDMX (расширение .edmx) и может просматриваться и изменяться в конструкторе Entity Framework. Классы, взаимодействующие с приложением, автоматически создаются из EDMX-файла.
Просмотреть видео
В этом видео и пошаговом руководстве приведены общие сведения о разработке модели First с помощью Entity Framework. Модель Сначала позволяет создать новую модель с помощью конструктора Entity Framework, а затем создать схему базы данных из модели. Модель хранится в файле EDMX (расширение .edmx) и может просматриваться и изменяться в конструкторе Entity Framework. Классы, взаимодействующие с приложением, автоматически создаются из EDMX-файла.
Представляет: Роуэн Миллер (Rowan Miller)
Предварительные требования
Для выполнения этого пошагового руководства необходимо установить Visual Studio 2010 или Visual Studio 2012.
Если вы используете Visual Studio 2010, вам также потребуется установить NuGet .
1. Создание приложения
Чтобы упростить работу, мы создадим базовое консольное приложение, использующее модель First для доступа к данным:
- Запустите Visual Studio
- Файл — > Создать — > Проект
- Выберите Windows в меню слева и консольное приложение
- Введите ModelFirstSample в качестве имени
- Выберите ОК
2. Создание модели
Мы будем использовать конструктор Entity Framework, который входит в состав Visual Studio, чтобы создать нашу модель.
Проект —> добавление нового элемента...
Выберите данные из меню слева, а затем ADO.NET модель данных сущности
Введите bloggingModel в качестве имени и нажмите кнопку "ОК", чтобы запустить мастер модели данных сущностей
Нажмите кнопку "Пустая модель" и нажмите кнопку "Готово"
Конструктор Entity Framework открывается с пустой моделью. Теперь можно приступить к добавлению сущностей, свойств и связей в модель.
Щелкните правой кнопкой мыши область конструктора и выберите пункт "Свойства"
В окно свойств измените имя контейнера сущности на BloggingContextЭто имя производного контекста, который будет создан для вас, контекст представляет сеанс с базой данных, позволяя нам запрашивать и сохранять данные.
Щелкните правой кнопкой мыши область конструктора и выберите "Добавить новое -> Сущность...
Введите блог в качестве имени сущности и BlogId в качестве имени ключа и нажмите кнопку "ОК"
Щелкните правой кнопкой мыши новую сущность в области конструктора и выберите "Добавить новое -> скалярное свойство", введите Имя в качестве имени свойства.
Повторите этот процесс, чтобы добавить свойство URL-адреса .
Щелкните правой кнопкой мыши свойство URL-адреса в области конструктора и выберите "Свойства", в окно свойств измените значение Nullable на TrueЭто позволяет сохранить блог в базе данных без назначения URL-адреса.
Используя методы, которые вы только что узнали, добавьте сущность Post с свойством ключа PostId
Добавление скалярных свойств Title и Content в сущность Post
Теперь, когда у нас есть несколько сущностей, пришло время добавить связь (или связь) между ними.
Щелкните правой кнопкой мыши область конструктора и нажмите кнопку "Добавить новую" —> связь...
Сделайте один конец отношения точки на блог с кратностью одного и другой конечной точки на Post с умножением многихэто означает, что блог имеет много записей и пост принадлежит одному блогу
Убедитесь, что поле "Добавить свойства внешнего ключа" в поле сущности Post проверка и нажмите кнопку "ОК"
Теперь у нас есть простая модель, из которую можно создать базу данных и использовать для чтения и записи данных.
Дополнительные шаги в 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 в качестве имени и нажмите кнопку "Добавить".
3. Создание базы данных
Учитывая нашу модель, Entity Framework может вычислить схему базы данных, которая позволит хранить и извлекать данные с помощью модели.
Сервер базы данных, установленный с Visual Studio, отличается в зависимости от установленной версии Visual Studio:
- Если вы используете Visual Studio 2010, вы создадите базу данных SQL Express.
- Если вы используете Visual Studio 2012, вы создадите базу данных LocalDB .
Давайте пойдем вперед и создадим базу данных.
Щелкните правой кнопкой мыши область конструктора и выберите "Создать базу данных" из модели...
Щелкните Создать Подключение... и укажите LocalDB или SQL Express в зависимости от используемой версии Visual Studio, введите ModelFirst.Blogging в качестве имени базы данных.
Нажмите кнопку "ОК ", и вам будет предложено создать новую базу данных, нажмите кнопку "Да"
Выберите "Далее ", а конструктор Entity Framework вычислит скрипт для создания схемы базы данных
После отображения скрипта нажмите кнопку "Готово ", а скрипт будет добавлен в проект и открыт
Щелкните скрипт правой кнопкой мыши и выберите "Выполнить", вам будет предложено указать базу данных для подключения, указать LocalDB или SQL Server Express в зависимости от используемой версии Visual Studio.
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. Работа с изменениями модели
Теперь пришло время внести некоторые изменения в модель, когда мы внося эти изменения, мы также должны обновить схему базы данных.
Начнем с добавления новой сущности Пользователя в нашу модель.
Добавление нового имени сущности пользователя с именем пользователя в качестве имени ключа и строки в качестве типа свойства для ключа
Щелкните правой кнопкой мыши свойство имени пользователя в области конструктора и выберите "Свойства", в окно свойств измените параметр MaxLength на 50, что ограничивает данные, которые могут храниться в имени пользователя до 50символов.
Добавление скалярного свойства DisplayName в сущность User
Теперь у нас есть обновленная модель, и мы готовы обновить базу данных для размещения нового типа сущности пользователя.
- Щелкните правой кнопкой мыши область конструктора и выберите "Создать базу данных из модели...", Entity Framework вычислит скрипт для повторного создания схемы на основе обновленной модели.
- Нажмите кнопку Готово.
- Вы можете получать предупреждения о перезаписи существующего скрипта DDL и сопоставлении и частях хранилища модели, нажмите кнопку "Да " для обоих этих предупреждений.
- Обновленный скрипт SQL для создания базы данных открыт для вас
Созданный скрипт удаляет все существующие таблицы, а затем повторно создает схему с нуля. Это может работать для локальной разработки, но не является жизнеспособным для отправки изменений в базу данных, которая уже развернута. Если необходимо опубликовать изменения в базе данных, которая уже развернута, необходимо изменить сценарий или использовать средство сравнения схем для вычисления скрипта миграции. - Щелкните скрипт правой кнопкой мыши и выберите "Выполнить", вам будет предложено указать базу данных для подключения, указать LocalDB или SQL Server Express в зависимости от используемой версии Visual Studio.
Итоги
В этом пошаговом руководстве мы рассмотрели разработку модели First, что позволило нам создать модель в EF Designer, а затем создать базу данных из этой модели. Затем мы использовали модель для чтения и записи некоторых данных из базы данных. Наконец, мы обновили модель, а затем воссоздали схему базы данных, чтобы она соответствовала модели.