我知道我可以使用以下命令添加新的迁移并创建数据库:
dotnet ef migrations add MigrationName -c DbContextName
dotnet ef database update -c DbContextName
但我需要在运行时创建我的数据库/表。
首先,我尝试通过覆盖OnModelCreating来做到这一点,但我失败了。它返回给我一个错误,指出表尚未创建
这是我的dbcontext类
public class AimeLoggerContext : DbContext
{
public AimeLoggerContext(DbContextOptions<AimeLoggerContext> options)
: base(options)
{
Database.Migrate();
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity("Aime.Logger.Loggers.Database.Model.Log", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd();
b.Property<DateTime>("Datetime");
b.HasKey("Id");
b.ToTable("Logs");
});
base.OnModelCreating(modelBuilder);
}
public DbSet<Log> Logs { get; set; }
}
任何想法 ?
如果您需要创建模型表,如果在您的数据库中还有其他表可以使用
RelationalDatabaseCreator databaseCreator =
(RelationalDatabaseCreator) context.Database.GetService<IDatabaseCreator>();
databaseCreator.CreateTables();