Entity Framework 6中的MergeOption在哪里?

18

我习惯于使用Entity Framework 4,在调用某些视图时,我必须确保将MergeOption设置为NoTracking,如下所示

SHEntity.qry_UserPermissions.MergeOption = System.Data.Objects.MergeOption.NoTracking;

但在升级到EF 6.1后,我甚至没有看到MergeOption作为qry_UserPermissions的一部分。 我必须设置它,否则EF有时会在我不想要的情况下合并记录。 尽管这对我来说似乎是一个简单的问题,但我搜索了一下谷歌,没有什么收获。

如何在EF 6.1中关闭跟踪?


你尝试过AsNoTracking扩展吗? - user3411327
@user3411327 我还没有,不过现在看来我必须使用一个扩展方法来做这件事似乎有些令人惊讶。 - cost
我假设你已经从ObjectContext和ObjectQueries切换到了DbContext和DbSets。DbSet不像ObjectQuery一样提供MergeOption属性。 - user3411327
1个回答

19

使用AsNoTracking()方法,您可以停止EF中对实体的跟踪,这可以在上下文查询时编写。

示例。

using (SHEntity context = new SHEntity())
{
   var up = context.qry_UserPermissions.AsNoTracking().ToList();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接