我知道我可以使用以下命令添加新迁移并创建数据库:
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();
关于entity-framework-core - 在 EF Core 运行时创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38532764/