【发布时间】:2019-10-25 15:54:06
【问题描述】:
我有一个使用 EF Core 并使用 SQL Server 配置的 ASP.NET Core Web API。我有一个控制器,它在发布时将表添加到数据库中,并且应该在删除时从数据库中删除这些表。添加的表将添加到单独的架构中。
如何在运行时删除新创建的架构中的表?
这是生成表格的代码:
RelationalDatabaseCreator databaseCreator =
(RelationalDatabaseCreator) context.Database.GetService<IDatabaseCreator>();
databaseCreator.CreateTables();
以及模式名称如何应用于上下文:
public DbSet<CustomEntity> CustomEntities { get;set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.ApplyConfiguration(new EntityConfiguration<CustomEntity>(nameof(CustomEntities), schemaName));
}
EntityConfiguration 类:
public class EntityConfiguration<T> : IEntityTypeConfiguration<T> where T : class
{
private readonly string tableName;
private readonly string schema;
public EntityConfiguration(string tableName, string schema)
{
this.tableName = tableName;
this.schema = schema;
}
public void Configure(EntityTypeBuilder<T> builder)
{
if (!string.IsNullOrEmpty(schema))
{
builder.ToTable(tableName, schema);
}
}
}
【问题讨论】:
标签: c# sql-server asp.net-web-api asp.net-core entity-framework-core