EF创建表而无需迁移

时间:2020-05-28 08:17:15

标签: c# entity-framework

我必须用代码创建一个表。问题是,不允许我使用迁移。应用程序应在启动时检查表是否存在,并按需添加它们。

我有一个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()
        };
        ...
    }

在这里,所有实体都被加载到配置容器中。尝试访问不存在的表时,可预见会引发异常。

如何检查表是否存在并按需创建而不进行迁移?

0 个答案:

没有答案