Entity Framework обеспечивает вызов OnModelCreating - PullRequest
0 голосов
/ 02 июля 2018

Я использую контейнер внедрения зависимостей для своего приложения, включая контексты моей базы данных EF. Я недавно узнал, что OnModelCreating не вызывается, потому что я никогда не делаю типичный using(var contexnt = new MyContext)... Ригмароль. Конструктор для моего контекста выглядит так:

public UserAccessContext(string connectionString):base(connectionString)
        {
            this.connectionString = connectionString;
            Database.SetInitializer<UserAccessContext>(null);
        }

Моя проблема в том, что в моем OnModelCreating я сопоставляю таблицу, имя которой не имеет разумного имени (вне моего контроля), к объекту домена. EF пытается использовать соглашение, чтобы выяснить имя таблицы и неправильно угадать. Как я могу продолжать использовать DI для внедрения зависимости моего контекста, но также гарантировать, что будет вызываться код конфигурации?

Это приложение является базовым приложением .NET, использующим встроенный DI-контейнер для .NET core web api:

services.AddScoped<IUserAccessContext>(_ => new UserAccessContext(userAccessConnectinString));

OnModelСоздание конфигурации

var remediationAuditLogConfig = dbModelBuilder.Entity<RemediationAuditLog>()
                .ToTable("dbo.PoorlyNamedTable");
            remediationAuditLogConfig.HasKey(x => x.Id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...