Загадочная проблема EF Core обнаружена при отладке запуска приложения: вызывается каждый получатель свойства DbSet
в контексте (в алфавитном порядке на основе DbSet
имени свойства), и создается каждая строка / сущность в базе данных!
DbContext
configurarion:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(Startup.Configuration.GetConnectionString("DefaultConnection"));
optionsBuilder.EnableSensitiveDataLogging();
base.OnConfiguring(optionsBuilder);
}
Настройка службы:
services.AddDbContext<ProjectDbContext>();
Я попытался исправить проблему, добавив
optionsBuilder.UseLazyLoadingProxies();
кDbContext
, но оказалось, что для каждого свойства навигации нужно пометить virtual
, и я получил большое количество свойств навигации. Я даже сделал себе инструмент WinForms, который добавляет модификатор virtual
к свойствам навигации - но использование прокси вызвало другие проблемы в моем проекте .
Тем не менее, я использую прокси с отложенной загрузкой или нетЯ считаю, что это не должно быть так, как работает Entityframework.Надеемся на любую помощь в выявлении и решении проблемы.
Среда:
- Asp.net Core 2.1
- EntityframeworkCore 2.1.4
- Visual Studio 2017 (15.8.6)
- C # 7.3