Junior — Middle
Каква е разликата между методите include и theninclude при работа с връзки в ORM?
sobes.tech AI
Отговор от AI
Методът Include в ORM (например, Entity Framework) се използва за жадно зареждане на свързаните същности от първо ниво. Тоест, позволява да се заредят свързаните данни на навигационното свойство заедно с основната същност.
ThenInclude се прилага за зареждане на свързани същности от второ и по-високи нива, тоест за вложени навигационни свойства след Include.
Пример:
var orders = context.Orders
.Include(o => o.Customer) // зареждане на свързания Customer
.Include(o => o.OrderItems) // зареждане на колекцията OrderItems
.ThenInclude(oi => oi.Product) // за всеки OrderItem, зареждане на Product
.ToList();
Тук Include зарежда OrderItems, а ThenInclude — свързаните с тях Product.
По този начин, Include започва веригата за зареждане на свързани данни, а ThenInclude я разширява за вложени връзки.