Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом видео и пошаговом руководстве приведены общие сведения о разработке модели First с помощью Entity Framework. Модель Сначала позволяет создать новую модель с помощью конструктора Entity Framework, а затем создать схему базы данных из модели. Модель хранится в файле EDMX (расширение .edmx) и может просматриваться и изменяться в конструкторе Entity Framework. Классы, взаимодействующие с приложением, автоматически создаются из EDMX-файла.
Посмотрите видео
В этом видео и пошаговом руководстве приведены общие сведения о разработке модели First с помощью Entity Framework. Модель Сначала позволяет создать новую модель с помощью конструктора Entity Framework, а затем создать схему базы данных из модели. Модель хранится в файле EDMX (расширение .edmx) и может просматриваться и изменяться в конструкторе Entity Framework. Классы, взаимодействующие с приложением, автоматически создаются из EDMX-файла.
Представлено: Роуэн Миллер
Необходимые условия
Для выполнения этого пошагового руководства необходимо установить 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'" и нажмите ОК
Теперь у нас есть простая модель, из которую можно создать базу данных и использовать для чтения и записи данных.
Дополнительные шаги в 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, а затем создать базу данных из этой модели. Затем мы использовали модель для чтения и записи некоторых данных из базы данных. Наконец, мы обновили модель, а затем воссоздали схему базы данных, чтобы она соответствовала модели.