Sobes.tech
Back to questions
Junior — Middle
75

Чем отличаются методы include и theninclude при работе с связями в ORM?

Answer from AI

sobes.tech 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 расширяет её для вложенных связей.