【发布时间】:2022-05-15 01:58:25
【问题描述】:
我添加了 appsettings.json 以获取连接字符串,但我无法获取我的连接字符串。这是我的代码。
public class MovieTheaterDBContextFactory : IDesignTimeDbContextFactory<MovieTheaterDBContext>
{
public MovieTheaterDBContext CreateDbContext(string []Args)
{
IConfigurationRoot configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.Build();
var ConnectionString = configuration.GetConnectionString("MovieTheaterDBContext");
//var ConnectionString = "Server=DESKTOPM4\\SQLEXPRESS;Database=MovieTheaterManagerment;Trusted_Connection=True;";
var optionsBuilder = new DbContextOptionsBuilder<MovieTheaterDBContext>();
optionsBuilder.UseSqlServer(ConnectionString);
return new MovieTheaterDBContext(optionsBuilder.Options);
}
}
appsettings.json:
{
"ConnectionStrings":
{
"MovieTheaterDBContext": "Server=DESKTOPM4\\SQLEXPRESS;Database=EshopSolution;Trusted_Connection=True;"
}
}
更新:这是我的错误,我没有将此项目设置为启动项目。所以它找不到appsettings.json。
【问题讨论】:
-
看起来像这行
.SetBasePath(AppDomain.CurrentDomain.BaseDirectory)或变体:stackoverflow.com/a/60199695/495455 -
嗨@Mistake,请分享你如何调用
MovieTheaterDBContextFactory方法?
标签: c# entity-framework asp.net-core