在 Entity Framework 核心上禁用 AutoDetectChanges
Disable AutoDetectChanges on Entity Framework Core
有人知道如何禁用 EFCore 上的 AutoDetectChanges 吗?
我需要这样做,因为我必须在我的数据库中进行大量导入,并且无法在网上找到信息。
试过这个但没用:
_context.Configuration.AutoDetectChangesEnabled = false;
说配置不存在。
非常感谢。
这是我熟悉的文档:
var blogs = context.Blogs
.AsNoTracking()
.ToList();
参考: https://docs.microsoft.com/en-us/ef/core/querying/tracking
我认为我以前的做法是在注册 DBContext 时将其关闭,这样就不必将其添加到每个查询中。
我想不起来了,没有代码 ex。现在参考所以我可能是错的
services.AddDbContext<YourDbContext>(options =>
{
options.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
});
很确定这就是您要找的东西
你试过的
_context.Configuration.AutoDetectChangesEnabled = false;
适用于 EF6。
对应的EF Core选项AutoDetectChangesEnabled is property of the ChangeTracker associated with the DbContext,所以对应的代码是
_context.ChangeTracker.AutoDetectChangesEnabled = false;
有人知道如何禁用 EFCore 上的 AutoDetectChanges 吗?
我需要这样做,因为我必须在我的数据库中进行大量导入,并且无法在网上找到信息。
试过这个但没用:
_context.Configuration.AutoDetectChangesEnabled = false;
说配置不存在。
非常感谢。
这是我熟悉的文档:
var blogs = context.Blogs
.AsNoTracking()
.ToList();
参考: https://docs.microsoft.com/en-us/ef/core/querying/tracking
我认为我以前的做法是在注册 DBContext 时将其关闭,这样就不必将其添加到每个查询中。
我想不起来了,没有代码 ex。现在参考所以我可能是错的
services.AddDbContext<YourDbContext>(options =>
{
options.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
});
很确定这就是您要找的东西
你试过的
_context.Configuration.AutoDetectChangesEnabled = false;
适用于 EF6。
对应的EF Core选项AutoDetectChangesEnabled is property of the ChangeTracker associated with the DbContext,所以对应的代码是
_context.ChangeTracker.AutoDetectChangesEnabled = false;