Sobes.tech
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 я разширява за вложени връзки.