AsNoTracking()方法在实体框架中缺少上下文

时间:2014-02-20 20:12:18

标签: c# winforms entity-framework

我需要使用Entity Framework 4.0将整个表加载到内存中。我花了最后2个小时阅读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()

3 个答案:

答案 0 :(得分:12)

AsNoTracking()是DbExtensions(EF5)/ QueryableExtensions(EF6)类中的扩展方法,它是System.Data.Entity命名空间的一部分。实体框架4.1+并未遗漏任何内容。您只需要记住为该命名空间添加using指令。

using System.Data.Entity;

答案 1 :(得分:7)

AsNoTracking()是一种扩展方法,已添加到实体框架4.1中(作为返回非缓存结果的能力)。这就是为什么你没有在Entity Framework 4.0中拥有它。我建议您升级Entity Framework的版本,如果可能的话(BTW当前版本是6.0)。

答案 2 :(得分:3)

如果使用来自.NET Core的EF使用指令:

using Microsoft.EntityFrameworkCore;