Отключить AutoDetectChanges в Entity Framework Core - PullRequest
1 голос
/ 09 января 2020

кто-то знает, как отключить AutoDetectChanges на EFCore?

Мне нужно это сделать, потому что я должен сделать огромный импорт в моей базе данных и не могу найти информацию в Интернете.

Пробовал это, но это не работает:

_context.Configuration.AutoDetectChangesEnabled = false;

Скажите, что конфигурация не существует.

Большое спасибо.

Ответы [ 3 ]

2 голосов
/ 09 января 2020

То, что вы пробовали

_context.Configuration.AutoDetectChangesEnabled = false;

, предназначено для EF6.

Соответствующая опция EF Core AutoDetectChangesEnabled является свойством ChangeTracker с DbContext , поэтому соответствующий код

_context.ChangeTracker.AutoDetectChangesEnabled = false;
2 голосов
/ 09 января 2020

Это то, с чем я знаком из документов:

var blogs = context.Blogs
    .AsNoTracking()
    .ToList();

Ссылка: https://docs.microsoft.com/en-us/ef/core/querying/tracking

1 голос
/ 09 января 2020

Мне кажется, что я делал это раньше, когда вы регистрируете свой DBContext, и вы можете отключить его, чтобы вам не приходилось добавлять его к каждому запросу.

От верха моей головы и не имеют кода ex. ссылаться прямо сейчас, чтобы я мог ошибаться

services.AddDbContext<YourDbContext>(options =>
{
    options.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
});

РЕДАКТИРОВАТЬ: Найдено. https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.dbcontextoptionsbuilder.usequerytrackingbehavior?view=efcore-3.1

Уверен, это то, что вы ищете

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...