Entity Framework - Changetracker содержит много элементов

У меня есть приложение C#, которое использует Entity Framework 6. Я запрашиваю базу данных следующим образом:

public static DB.Core.DBBlob getBlob(DB.Core.DBAspect aspect, int index)
    {
        var blobs = aspect.DBBlobs.Where(b => b.Index == index);
        return blobs.OrderByDescending(b => b.CreationTime).FirstOrDefault();
    }

Проблема сейчас в том, что в changetracker есть 2 записи

Первый элемент - это тот, который я запросил из базы данных, а второй - тот, который я исключил с помощью инструкции where (я хочу получить элемент только с индексом == 1).

Похоже, что EF6 загружает обе записи из базы данных и добавляет их в систему отслеживания изменений.

Я уже пытался установить следующие параметры:

dbm.Configuration.AutoDetectChangesEnabled = false;
dbm.Configuration.LazyLoadingEnabled = false;
dbm.Configuration.ProxyCreationEnabled = false;

Надеюсь, кто-нибудь сможет мне помочь.

1 ответ

Решение

Я нашел решение. Проблема в том, что Entity Framework загружает все "дочерние" элементы. Что я делаю сейчас, так это то, что я запрашиваю DbSet напрямую (используя модель базы данных) и добавляю в оператор where идентификатор родительского элемента.

Другие вопросы по тегам