连接数据库的.NET核心MVC项目

问题描述 投票:0回答:3

它使用.NET 2.2的核心和MySQL工作台我的第一次,

我试图建立一个非常基本的网站。

我跟着下面的Microsoft教程

https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/working-with-sql?view=aspnetcore-2.2&tabs=visual-studio

之后,我加入了脚手架项目,我遵循的指示,打开了NuGet包管理器,并执行在CLI以下命令:

Add-Migration Initial Update-Database

Update-Database命令提出了以下错误:

而与SQL Server建立连接时出现与网络相关的或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server配置为允许远程连接。 (provider:命名管道提供程序,error:40 - 无法打开到SQL Server的连接)

我用BlueHost的(共享主机)服务器的工作,我修改的权限,所以我可以远程连接到数据库(实际上我通过My​​SQL的工作台连接)

我试图改变ConnectionString,以下列内容:

"ConnectionStrings": 
{
    "Piano3Context": "Server=162.241.*.*;Database=PianoDB;User Id=omyUsrName;password=myPass;Trusted_Connection=True;MultipleActiveResultSets=true;"
}

可是我收到同样的错误。

如果任何其他代码将帮助请注意,我会发布。

c# mysql .net-core .net-core-2.2
3个回答
3
投票

你提到的教程是使用和SQL-Server中。为了连接一个MySQL服务器时,你需要不同的数据库提供商。您可以为MySQL安装Pomelo.EntityFrameworkCore.MySql NuGet包。见providers page在微软文档。

之后,你需要将options.UseSqlServer从教程options.UseMySql作为对mysql providers project page描述的改变。


2
投票

此外,这是如何设置MySQL的选项,你可以移动的配置字符串来配置和使用GetConnectionString方法。

services.AddDbContextPool<MvcMovieContext>(
            options => options.UseMySql("Server=localhost;Database=ef;User=root;Password=123456;", 
                mySqlOptions =>
                {
                    mySqlOptions.ServerVersion(new Version(5, 7, 17), ServerType.MySql); // replace with your Server Version and Type
                }
        ));

1
投票

我被你需要像他回答说使用MySQL和配置在启动@菲利普 - grathwohl挨打吧。

您可以使用此命令而不是它的支架和的DbContext生成一个命令的EF模型和上下文更改了启动和添加的NuGet包Pomelo.EntityFrameworkCore.MySql后:

Scaffold-DbContext "Server=<ip>;Initial Catalog=PianoDB;Persist Security Info=False;User ID=<username>;Password=<password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -context Piano3Context -force

不要让我知道如果这最后的命令吐出任何错误。

© www.soinside.com 2019 - 2024. All rights reserved.