【发布时间】:2021-09-28 19:04:55
【问题描述】:
我正在尝试在我的 web api 中为一对多数据库创建迁移。服务就是这样配置的,从launchsettings.json成功接收到连接字符串
var connectionStr = Environment.GetEnvironmentVariable("ApplicationDbContext");
services.AddDbContext<InsolationResultContext>(options =>
{
options.UseNpgsql(connectionStr, builder =>
{
builder.CommandTimeout(300);
builder.EnableRetryOnFailure(5, TimeSpan.FromSeconds(10), null);
});
});
这是模型
public class DocumentInsolationResult
{
public string Id { get; set; }
public string UserId { get; set; }
public IEnumerable<InsolationResult> Elements { get; set; }
}
public class InsolationResult
{
public string UniqueId { get; set; }
public string Insolation { get; set; }
}
和 DbContext
public class InsolationResultContext : DbContext
{
public DbSet<DocumentInsolationResult> DocumentInsolationResults { get; set; }
public DbSet<InsolationResult> InsolationResults { get; set; }
public InsolationResultContext(DbContextOptions<InsolationResultContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<DocumentInsolationResult>()
.HasMany(p => p.Elements)
.WithOne();
}
}
连接字符串如下所示:
"environmentVariables": {
"ApplicationDbContext": "Host=192.168.1.***;Port=****;Database=***.******;Username=*****;Password=****",
"ASPNETCORE_ENVIRONMENT": "Development"
},
当尝试“添加迁移初始化”时,我总是得到“值不能为空。 (参数'connectionString')。我究竟做错了什么?网上实在找不到答案
upd:我正在从launchsetting接收连接字符串,没关系,因为我在其他一些项目上使用相同的方式获取连接字符串
upd2 硬编码连接字符串对我有用
【问题讨论】:
标签: c# entity-framework-core database-migration