Метод AsNoTracking() отсутствует в контексте в инфраструктуре Entity Framework
Мне нужно загрузить всю таблицу в память с помощью Entity Framework 4.0. Последние два часа я читал о методе AsNoTracking(), который должен делать трюк, но я не могу понять, почему метод недоступен в моем dataContext. Основываясь на всем, что я прочитал, мне просто нужна ссылка на System.Data.Entity. Затем при загрузке моих объектов я должен использовать метод AsNoTracking(). Я что-то пропустил здесь? Этот метод недоступен в EF 4.0? Тем не менее ниже приведен один из запросов моего кода.
// Working Query
var items = dbContext.Items.ToList()
// Does NOT Work (Compiler does not recognize AsNoTrackingMethod() )
var items = dbContext.Items.AsNoTracking().ToList()
Ответы
Ответ 1
AsNoTracking()
- это метод расширения, который был добавлен в Entity Framework 4.1 (как возможность возвращать не кэшированные результаты). Вот почему у вас нет этого в Entity Framework 4.0. Я предлагаю вам обновить версию Entity Framework, если это возможно (текущая версия BTW - 6.0).
Ответ 2
AsNoTracking() - это метод расширения в DbExtensions (EF5)/QueryableExtensions (EF6) класс, который является частью пространства имен System.Data.Entity. Он отсутствует в Entity Framework 4.1+. Вам просто нужно запомнить, чтобы добавить директиву использования для этого пространства имен.
using System.Data.Entity;
Ответ 3
Если используется директива EF из .NET Core:
using Microsoft.EntityFrameworkCore;