EF создать таблицу без миграции - PullRequest
0 голосов
/ 28 мая 2020

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

У меня очень базовая c реализация DbContext, которая создается путем вызова этого метода:

    public static ConfigurationDbContext CreateRemoteContext(string nameOrConnectionString)
    {
        var context = new ConfigurationDbContext(nameOrConnectionString);

        context.Configuration.ProxyCreationEnabled = false;
        context.Configuration.LazyLoadingEnabled = false;
        context.Configuration.AutoDetectChangesEnabled = false;

        return context;
    }

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

    using (var dbContext = ConfigurationDbContext.CreateRemoteContext(App.Database.DbConnectionName))
    {
        var result = new ConfigurationContainer
        {
            ExistingTableEntities = dbContext.ExistingEntities.ToArray(),
            ...
            NotExistingTableEntities = dbContext.NotExistingTableEntities.ToArray()
        };
        ...
    }

Здесь все объекты загружаются в контейнер конфигурации. При попытке доступа к несуществующей таблице он предсказуемо выдает исключение.

Как я могу проверить, существует ли таблица, и создать ее по запросу без миграции?

...