【问题标题】:ConnectionString not read properly - EF CoreConnectionString 未正确读取 - EF Core
【发布时间】:2025-12-12 14:15:02
【问题描述】:

我正在使用 EF Core 连接到 MySQL 数据库。自从从 1.0 升级到 1.1 后,我的连接字符串似乎没有被正确读取。这是我的 project.json:

{
  "version": "1.0.0-*",

  "dependencies": {
    "MySql.Data": "7.0.6-IR31",
    "MySql.Data.EntityFrameworkCore": "7.0.6-IR31",
    "NETStandard.Library": "1.6.1"
  },

  "tools": {
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-*"
  },

  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  }
}

我正在像这样初始化一个 DBContext:

var optionsBuilder = new DbContextOptionsBuilder<Entities>();
optionsBuilder.UseMySQL(TestSettings.ConnectionString);

// Ensure database creation
context = new Entities(optionsBuilder.Options);

似乎用一些默认值代替了主机名:

Unable to connect to any of the specified MySQL hosts.
One or more errors occurred. (The requested address is not valid in its context 255.255.255.255:3306)

The requested address is not valid in its context 255.255.255.255:3306

这是连接字符串:

"server=mmocstagingdb.australiasoutheast.cloudapp.azure.com;user id=root;password=root;database=root;Convert Zero Datetime=True;SSL Mode=None"

(用户名、密码和数据库值被替换)对于它的价值,TestSettings 是一个带有静态字段ConnectionString 的静态类

有人有什么想法吗?

附言

我觉得这个问题有点相关:MissingMethodException DbSet.ToList

我最近更新到 .NET Core 1.1 并遇到了与上述帖子相同的错误。我使用接受的答案解决了它。但是现在遇到了这个问题。

【问题讨论】:

  • 你能发布连接字符串吗?
  • @J.Pichardo 已发布。请参阅编辑
  • @l3utterfly 也许你的服务器需要SSL。你试过了吗?
  • @I3utterfly 你试过把user id=root换成userid=root吗?
  • 好吧好吧,这很尴尬……看我的回答。

标签: c# mysql asp.net-core entity-framework-core


【解决方案1】:

此处的答案令人尴尬,但发布以防其他人遇到此神秘错误消息。

原来主机无法访问,因为我之前在 Azure 上停止了服务器并忘记了。

但显然,如果主机无法访问,则会显示它正在尝试连接到 255.255.255.255:3306... 这导致我误以为连接字符串未正确传递。

【讨论】: