【发布时间】:2020-12-03 11:49:06
【问题描述】:
对于具有代码优先和迁移的 Entity Framework Core 应用程序, 如果数据库不存在,我无法创建它。
我的第一个电话是:
using (MyDbContext context = new MyDbContext())
{
context.Database.Migrate();
}
它运行被覆盖的方法:
// 1
protected override void OnConfiguring(DbContextOptionsBuilder optionBuilder)
{
optionBuilder.UseOracle($"ENLIST=dynamic;USER ID={UserId};POOLING=True;CONNECTION TIMEOUT=15;PASSWORD={Pwd};DATA SOURCE=localhost:1521/xe;CONNECTION LIFETIME=0");
}
// 2
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema(UserId);
}
并抛出以下异常:
System.NotSupportedException:'所需用户不存在或提供的用户名/密码无效'
我期待数据库和用户将在HasDefaultSchema 调用中创建。
在这种情况下我缺少什么?
【问题讨论】:
-
试过
dbContext.EnsureCretated()?
标签: c# oracle entity-framework-core ef-code-first entity-framework-migrations