Выбери любимый жанр
Выбрать книгу по жанру
Фантастика и фэнтези
- Боевая фантастика
- Героическая фантастика
- Городское фэнтези
- Готический роман
- Детективная фантастика
- Ироническая фантастика
- Ироническое фэнтези
- Историческое фэнтези
- Киберпанк
- Космическая фантастика
- Космоопера
- ЛитРПГ
- Мистика
- Научная фантастика
- Ненаучная фантастика
- Попаданцы
- Постапокалипсис
- Сказочная фантастика
- Социально-философская фантастика
- Стимпанк
- Технофэнтези
- Ужасы и мистика
- Фантастика: прочее
- Фэнтези
- Эпическая фантастика
- Юмористическая фантастика
- Юмористическое фэнтези
- Альтернативная история
Детективы и триллеры
- Боевики
- Дамский детективный роман
- Иронические детективы
- Исторические детективы
- Классические детективы
- Криминальные детективы
- Крутой детектив
- Маньяки
- Медицинский триллер
- Политические детективы
- Полицейские детективы
- Прочие Детективы
- Триллеры
- Шпионские детективы
Проза
- Афоризмы
- Военная проза
- Историческая проза
- Классическая проза
- Контркультура
- Магический реализм
- Новелла
- Повесть
- Проза прочее
- Рассказ
- Роман
- Русская классическая проза
- Семейный роман/Семейная сага
- Сентиментальная проза
- Советская классическая проза
- Современная проза
- Эпистолярная проза
- Эссе, очерк, этюд, набросок
- Феерия
Любовные романы
- Исторические любовные романы
- Короткие любовные романы
- Любовно-фантастические романы
- Остросюжетные любовные романы
- Порно
- Прочие любовные романы
- Слеш
- Современные любовные романы
- Эротика
- Фемслеш
Приключения
- Вестерны
- Исторические приключения
- Морские приключения
- Приключения про индейцев
- Природа и животные
- Прочие приключения
- Путешествия и география
Детские
- Детская образовательная литература
- Детская проза
- Детская фантастика
- Детские остросюжетные
- Детские приключения
- Детские стихи
- Детский фольклор
- Книга-игра
- Прочая детская литература
- Сказки
Поэзия и драматургия
- Басни
- Верлибры
- Визуальная поэзия
- В стихах
- Драматургия
- Лирика
- Палиндромы
- Песенная поэзия
- Поэзия
- Экспериментальная поэзия
- Эпическая поэзия
Старинная литература
- Античная литература
- Древневосточная литература
- Древнерусская литература
- Европейская старинная литература
- Мифы. Легенды. Эпос
- Прочая старинная литература
Научно-образовательная
- Альтернативная медицина
- Астрономия и космос
- Биология
- Биофизика
- Биохимия
- Ботаника
- Ветеринария
- Военная история
- Геология и география
- Государство и право
- Детская психология
- Зоология
- Иностранные языки
- История
- Культурология
- Литературоведение
- Математика
- Медицина
- Обществознание
- Органическая химия
- Педагогика
- Политика
- Прочая научная литература
- Психология
- Психотерапия и консультирование
- Религиоведение
- Рефераты
- Секс и семейная психология
- Технические науки
- Учебники
- Физика
- Физическая химия
- Философия
- Химия
- Шпаргалки
- Экология
- Юриспруденция
- Языкознание
- Аналитическая химия
Компьютеры и интернет
- Базы данных
- Интернет
- Компьютерное «железо»
- ОС и сети
- Программирование
- Программное обеспечение
- Прочая компьютерная литература
Справочная литература
Документальная литература
- Биографии и мемуары
- Военная документалистика
- Искусство и Дизайн
- Критика
- Научпоп
- Прочая документальная литература
- Публицистика
Религия и духовность
- Астрология
- Индуизм
- Православие
- Протестантизм
- Прочая религиозная литература
- Религия
- Самосовершенствование
- Христианство
- Эзотерика
- Язычество
- Хиромантия
Юмор
Дом и семья
- Домашние животные
- Здоровье и красота
- Кулинария
- Прочее домоводство
- Развлечения
- Сад и огород
- Сделай сам
- Спорт
- Хобби и ремесла
- Эротика и секс
Деловая литература
- Банковское дело
- Внешнеэкономическая деятельность
- Деловая литература
- Делопроизводство
- Корпоративная культура
- Личные финансы
- Малый бизнес
- Маркетинг, PR, реклама
- О бизнесе популярно
- Поиск работы, карьера
- Торговля
- Управление, подбор персонала
- Ценные бумаги, инвестиции
- Экономика
Жанр не определен
Техника
Прочее
Драматургия
Фольклор
Военное дело
Последние комментарии
Сергей2018-11-27
Не книга, а полная чушь! Хорошо, что чит
К книгеЯзык программирования C#9 и платформа .NET5 - Троелсен Эндрю - Страница 452
452
Изменить размер шрифта:
new() {Id = 6, MakeId = 5, Color = "Green", PetName = "Hank"},
new() {Id = 7, MakeId = 5, Color = "Pink", PetName = "Pinky"},
new() {Id = 8, MakeId = 6, Color = "Black", PetName = "Pete"},
new() {Id = 9, MakeId = 4, Color = "Brown", PetName = "Brownie"},
new() {Id = 10, MakeId = 1, Color = "Rust", PetName = "Lemon",
IsDrivable = false},
};
public static List<Order> Orders => new()
{
new() {Id = 1, CustomerId = 1, CarId = 5},
new() {Id = 2, CustomerId = 2, CarId = 1},
new() {Id = 3, CustomerId = 3, CarId = 4},
new() {Id = 4, CustomerId = 4, CarId = 7},
new() {Id = 5, CustomerId = 5, CarId = 10},
};
public static List<CreditRisk> CreditRisks => new()
{
new()
{
Id = 1,
CustomerId = Customers[4].Id,
PersonalInformation = new()
{
FirstName = Customers[4].PersonalInformation.FirstName,
LastName = Customers[4].PersonalInformation.LastName
}
}
};
Загрузка выборочных данных
Внутренний метод
SeedData()
в классе SampleDatalnitializer
добавляет данные из методов класса SampleData
к экземпляру ApplicationDbContext
и сохраняет данные в базе данных:internal static void SeedData(ApplicationDbContext context)
{
try
{
ProcessInsert(context, context.Customers!, SampleData.Customers);
ProcessInsert(context, context.Makes!, SampleData.Makes);
ProcessInsert(context, context.Cars!, SampleData.Inventory);
ProcessInsert(context, context.Orders!, SampleData.Orders);
ProcessInsert(context, context.CreditRisks!, SampleData.CreditRisks);
}
catch (Exception ex)
{
Console.WriteLine(ex);
// Поместить сюда точку останова, чтобы выяснить,
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390}) // в чем заключается проблема.
throw;
}
static void ProcessInsert<TEntity>(
ApplicationDbContext context,
DbSet<TEntity> table,
List<TEntity> records) where TEntity : BaseEntity
{
if (table.Any())
{
return;
}
IExecutionStrategy strategy = context.Database.CreateExecutionStrategy();
strategy.Execute(() =>
{
using var transaction = context.Database.BeginTransaction();
try
{
var metaData = context.Model.FindEntityType(typeof(TEntity).FullName);
context.Database.ExecuteSqlRaw(
$"SET IDENTITY_INSERT {metaData.GetSchema()}.
{metaData.GetTableName()} ON");
table.AddRange(records);
context.SaveChanges();
context.Database.ExecuteSqlRaw(
$"SET IDENTITY_INSERT {metaData.GetSchema()}.
{metaData.GetTableName()} OFF");
transaction.Commit();
}
catch (Exception)
{
transaction.Rollback();
}
});
}
}
Для обработки данных в методе
SeedData()
используется локальная функция. Сначала она проверяет, содержит ли таблица какие-то записи, и если нет, то переходит к обработке выборочных данных. Из фасадного экземпляра базы данных создается экземпляр реализации IExecutionStrategy
, применяемый для создания явной транзакции, которая необходима для включения и отключения вставки идентичности. Записи добавляются; если все прошло успешно, тогда транзакция фиксируется, а в противном случае подвергается откату.Приведенные далее два открытых метода используются для сброса базы данных. Метод
InitializeData()
удаляет и воссоздает базу данных перед ее заполнением начальными данными, а метод ClearDatabase()
просто удаляет все записи, сбрасывает идентичность и заполняет базу начальными данными:- Предыдущая
- 452/642
- Следующая

