在 Docker 连接到 MySql

Connecting to MySql on Docker

我在 docker 上部署了一个 ASP.NET 5 Web API 应用程序。它连接到 MySql 实例,也在 docker 上。我正在使用 Entity Framework 6 连接到 MySql 数据库。我没有直接引用 Entity Framework,而是使用内部使用 Entity Framework 6.

的 MySql.Data.Entity 包

当我调用 API 时,出现此错误:

无法确定 'MySql.Data.MySqlClient.MySqlClientFactory' 类型的提供程序工厂的提供程序名称

在 docker 之外,即在我的 windows 机器上,在 Visual Studio 2015 年,我将我的网络 API 指向 MySql 实例 docker,我可以正常连接。在 docker 里面,我得到上面提到的错误。

有什么问题吗?

我不是 ASP.NET 方面的专家,但您的问题不能转化为:

If I run ASP.NET on Windows everything works fine, if I run it on Linux I get an exception.

?

我认为这不是 Docker 问题,我宁愿调查 Entity Framework 在 Mono 上的问题/驱动程序需求。

未传递提供商名称。在 ASP.NET 5 之前,provider 值可以在 web.config 中与 connectionString 一起设置。这不再是这种情况,因为连接字符串只是 json 文件中的一个字符串值,没有额外的属性。

您需要以编程方式进行设置。 ,特别是这部分;

SetProviderServices("MySql.Data.MySqlClient", new MySqlProviderServices());