Работа Lazy Loading при активном AsNoTracking

Рейтинг: 0Ответов: 0Опубликовано: 01.08.2025

Загружаю сущность с использованием AsNoTracking:

var task = await _context.Tasks.AsNoTracking().FirstOrDefaultAsync(x => x.Id == Guid.Parse("31797f2f-1116-48c0-90c9-acd428091939"), cancellationToken);

Далее, от загруженной сущности обращаюсь к связанной, которая ранее не была подгружена:

var document = task.Document;

В результате вижу, что task.Document без проблем подгружается, при этом сущности действительно не отслеживаются, но Lazy Loader для них работает, как так происходит?

Для task.Document действительно уходит отдельный запрос, он не был подгружен ранее.

Это типичное поведение EF Core, раньше подобного не замечал. Либо это работает только для сущностей, которые были подгружены из БД, а для вручную созданных такое не сработает?

Версия нугета EF Core: 8.0.6

P.S. На самом деле, мне такое поведение очень даже нравится, мне просто интересно, не временное ли это явление и так специально заложили или нет.

Ответы

Ответов пока нет.