Поскольку вы вручную создаете экземпляр контекста, конфигурация, применяемая при запуске, не внедряется в контекст, а вместо этого использует метод OnConfiguring
.
Именно поэтому ваша конфигурация при запускене применяется.
Выполните рефакторинг контекста для удаления конструктора по умолчанию и OnConfiguring
public partial class ContactDBContext : DbContext {
public ContactDBContext(DbContextOptions<ContactDBContext> options)
: base(options) {
}
public virtual DbSet<Contacts> Contacts { get; set; }
}
}
Затем убедитесь, что контекст внедрен в требуемый зависимый класс
public class ContactService : IContactService {
ContactDBContext db;
public ContactService (ContactDBContext db) {
this.db = db
}
public async Task<List<ContactModel>> GetContacts() {
var contacts = db.Contacts;
//...convert to models
//...
}
}
Конфигурация, применяемая при запуске, теперь должна включаться, когда контейнер разрешает контекст для внедрения.
Ссылка Настройка DbContext