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

Gra*_*per 13 c# entity-framework winforms

我需要使用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()
Run Code Online (Sandbox Code Playgroud)

use*_*835 12

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

using System.Data.Entity;
Run Code Online (Sandbox Code Playgroud)


Ser*_*kiy 7

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


Mit*_*boc 6

如果从.NET Core使用EF,请使用指令:

using Microsoft.EntityFrameworkCore;
Run Code Online (Sandbox Code Playgroud)