public static class SampleDataInitializer
{
}
}
Создайте метод по имени DropAndCreateDatabase
ApplicationDbContext. Этот метод использует свойство Database экземпляра ApplicationDbContext, чтобы сначала удалить базу данных (с помощью метода EnsureDeleted) и затем создать ее заново (посредством метода Migrate):public static void DropAndCreateDatabase(ApplicationDbContext context)
{
context.Database.EnsureDeleted;
context.Database.Migrate;
}
Создайте еще один метод по имени ClearData
Model класса DbContext для получения схемы и имени таблицы, на которые отображается каждая сущность. Затем он выполняет оператор DELETE и сбрасывает идентичность для каждой таблицы, используя метод ExecuteSqlRaw на свойстве Database класса DbContext:internal static void ClearData(ApplicationDbContext context)
{
var entities = new[]
{
typeof(Order).FullName,
typeof(Customer).FullName,
typeof(Car).FullName,
typeof(Make).FullName,
typeof(CreditRisk).FullName
};
foreach (var entityName in entities)
{
var entity = context.Model.FindEntityType(entityName);
var tableName = entity.GetTableName;
var schemaName = entity.GetSchema;
context.Database.ExecuteSqlRaw($"DELETE FROM {schemaName}.{tableName}");
context.Database.ExecuteSqlRaw($"DBCC CHECKIDENT (\"{schemaName}.
{tableName}\",
RESEED, 1);"); }
}
На заметку!
МетодExecuteSqlRaw фасадного экземпляра базы данных должен применяться осторожно, чтобы избежать потенциальных атак внедрением в SQL. Теперь, когда вы можете удалять и создавать базу данных и очищать данные, пора заняться методами, которые будут добавлять выборочные данные.Инициализация базы данных
Вам предстоит построить свою систему заполнения начальными данными, которую можно запускать по требованию. Первым шагом будет создание выборочных данных и добавление в класс SampleDatalnitializer методов для загрузки выборочных данных в базу.
Создание выборочных данных
Добавьте в каталог Initialization
SampleData.cs. Сделайте его открытым и статическим и поместите в него следующие операторы using:using System.Collections.Generic;
using AutoLot.Dal.Entities;
using AutoLot.Dal.Entities.Owned;
namespace AutoLot.Dal.Initialization
{
public static class SampleData
{
}
}
Класс SampleData
{
new {Id = 1, PersonalInformation = new {FirstName = "Dave",
LastName = "Brenner"}},
new {Id = 2, PersonalInformation = new {FirstName = "Matt",
LastName = "Walton"}},
new {Id = 3, PersonalInformation = new {FirstName = "Steve",
LastName = "Hagen"}},
new {Id = 4, PersonalInformation = new {FirstName = "Pat",
LastName = "Walton"}},
new {Id = 5, PersonalInformation = new {FirstName = "Bad",
LastName = "Customer"}},
};
public static List
{
new {Id = 1, Name = "VW"},
new {Id = 2, Name = "Ford"},
new {Id = 3, Name = "Saab"},
new {Id = 4, Name = "Yugo"},
new {Id = 5, Name = "BMW"},
new {Id = 6, Name = "Pinto"},
};
public static List
{
Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT