我在Ubuntu Linux上使用.NetCore 3.0实体框架。我已经安装了MariaDB,添加了用户Joe以访问MariaDB。我可以使用以下方式访问数据库:

mysql -u Joe -p -h localhost


我在.Net中有以下代码:

using Microsoft.EntityFrameworkCore;

public class MyDbContext : DbContext
{
   public DbSet<TestModel> TestModels { get; set; }

   protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
   {
      optionsBuilder.UseSqlServer(
          @"Server=localhost; Database=MyTestDb; User Id=Joe; Password=abc;");
   }
}


该项目已导入两个NuGet软件包:

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer


当我尝试运行此代码或使用dotnet ef database update“迁移/更新”数据库时,收到以下异常:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供程序:TCP提供程序,错误:40-无法打开与SQL Server的连接)

我什至启用了对MariaDB的远程连接访问,尽管我是从数据库所在的给定计算机访问它的。

感谢您的任何建议:-)

最佳答案

Microsoft.EntityFrameworkCore.SqlServer是Microsoft SQL Server的软件包。 MySQL / MariaDB的EF Core软件包为Pomelo.EntityFrameworkCore.MySql

请注意,如果您使用的是Entity Framework Core 3.0,则需要根据https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql#compatibility3.0.0-rc3.final预发行版本。最终的3.0版本应尽快发布。

关于c# - 通过.NetCore与MariaDB本地主机的SQLConnection,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58842036/

10-16 15:48