Метод 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;