Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Класс
DbSet<T>IQueryable<T>DbSet<T>ForEach()Select()All()Вы узнаете, как добавлять к классу
ApplicationDbContextDbSet<T>На заметку! Многие методы из перечисленных в табл. 22.2, имеют те же самые имена, что и методы в табл. 22.1. Основное отличие в том, что методам
DbSet<T>DbContextDbSet<T>DbContextТипы запросов
Типы запросов — это коллекции
DbSet<T>DbQuery<T>DbQueryDbContextDbSet<T>Например, класс
CustomerOrderViewModelAutoLot[Keyless]<b>[Keyless]</b>public class CustomerOrderViewModel{...}Остальные действия по конфигурированию делаются в Fluent API. В следующем примере сущность устанавливается как не имеющая ключа, а тип запроса сопоставляется с представлением базы данных
dbo.CustomerOrderViewHasNoKey()KeylessmodelBuilder.Entity<CustomerOrderViewModel>().HasNoKey().ToView("CustomerOrderView", "dbo");Типы запросов могут также сопоставляться с запросом SQL, как показано ниже:
modelBuilder.Entity<CustomerOrderViewModel>().HasNoKey().ToSqlQuery( @"SELECT c.FirstName, c.LastName, i.Color, i.PetName, m.Name AS Make FROM dbo.Orders o INNER JOIN dbo.Customers c ON o.CustomerId = c.Id INNER JOIN dbo.Inventory i ON o.CarId = i.Id INNER JOIN dbo.Makes m ON m.Id = i.MakeId");Последние механизмы, с которыми можно использовать типы запросов — это методы
FromSqlRaw()FromSqlInterpolated()FromSqlRaw()public IEnumerable<CustomerOrderViewModel> GetOrders(){ return CustomerOrderViewModels.FromSqlRaw( @"SELECT c.FirstName, c.LastName, i.Color, i.PetName, m.Name AS Make FROM dbo.Orders o INNER JOIN dbo.Customers c ON o.CustomerId = c.Id INNER JOIN dbo.Inventory i ON o.CarId = i.Id INNER JOIN dbo.Makes m ON m.Id = i.MakeId");}Гибкое сопоставление с запросом или таблицей
В версии EF Core 5 появилась возможность сопоставления одного и того же класса с более чем одним объектом базы данных. Такими объектами могут быть таблицы, представления или функции. Например, класс
CarViewModelCarmodelBuilder.Entity<CarViewModel>() .ToTable("Inventory") .ToView("InventoryWithMakesView");Экземпляр ChangeTracker
Экземпляр
ChangeTrackerDbSet<T>DbContext
Для проверки состояния объекта используйте следующий код:
EntityState state = context.Entry(entity).State;Вы также можете программно изменять состояние объекта с применением того же самого механизма. Чтобы изменить состояние на
Deletedcontext.Entry(entity).State = EntityState.Deleted;События ChangeTracker
Экземпляр
ChangeTrackerStateChangedTrackedStateChangedTrackedDbSet<T>Похожие книги на "Язык программирования C#9 и платформа .NET5", Троелсен Эндрю
Троелсен Эндрю читать все книги автора по порядку
Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mir-knigi.info.