базовая структура сущности Idesigntimecontext - PullRequest
0 голосов
/ 04 июня 2019

ранее у меня был какой-то код, который был следующим:

public class TemporaryDbContextFactory : IDesignTimeDbContextFactory<MyDbContext>
{
    private readonly IHttpContextService httpContext;
    public MyDbContext CreateDbContext(string[] args)
    {
        var connectionString = ""; //connection string removed        
        var builder = new DbContextOptionsBuilder<MyDbContext>();
        builder.UseSqlServer(connectionString,
            optionsBuilder => optionsBuilder.MigrationsAssembly(typeof(MyDbContext).GetTypeInfo().Assembly.GetName().Name));
        return new MyDbContext(builder.Options, httpContext);
    }
}

не уверен, откуда взялся этот код выше ... это работало, хотя при добавлении миграций и выполнении update-database в консоли диспетчера пакетов в Visual studio.

Теперь, хотя я добавил некоторые сервисы в класс MyDbContext (добавлен через конструктор DI), и я использую их в методе onconfiguring, например:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        var tenant = _tenantProvider.GetTenant();
        ConnectionString = _encryptionService.Decrypt(tenant.EncryptedConnectionString);

        optionsBuilder.UseSqlServer(ConnectionString);            
        base.OnConfiguring(optionsBuilder);
    }

и моя команда update-database завершается неудачно из-за того, что объект не установлен как экземпляр объекта в tenantProvider.

Кто-нибудь получил какие-либо предложения, как я могу это исправить, так как это немного ново для меня?

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