【发布时间】:2020-04-19 11:21:50
【问题描述】:
我使用了多个示例来说明如何设置 MySql 服务,但几乎每个示例(包括 Microsoft)都使用硬编码的连接字符串。
这是我的创业公司:
services.AddDbContext<DbContext>(options =>
{
options.UseMySql(configuration.GetConnectionString("DefaultConnection"),
mysqlOptions =>
{
mysqlOptions.ServerVersion(new ServerVersion(new Version(8, 0, 18)));
});
});
每当我尝试Update-Database 时,我都会看到一条错误消息,告诉我没有设置密码
MySql.Data.MySqlClient.MySqlException (0x80004005):用户“root”@“localhost”的访问被拒绝(使用密码:YES)。
环顾四周后,我发现了一个名为OnConfiguring 的可覆盖方法,但我想以动态方式设置连接字符串,因为如果我改变我的环境,我希望那个字符串也改变。
这是我发现几乎所有硬编码字符串示例的地方(例如https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework-core.html)
【问题讨论】:
-
您能在配置文件中显示您的 connectionString 的外观吗?
-
为什么在从配置中检索连接字符串时将其称为硬编码?
-
错误是用户没有权限连接到服务器'localhost'。要为不同的环境使用不同的连接,您可以在不同的
appsettings.{env}.json文件中配置连接字符串。stackoverflow.com/questions/41267506/…
标签: c# asp.net-core entity-framework-core