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 идентификатор родительского элемента.