首页 > 解决方案 > Visual Studio:将本地主机上运行的 MySQL 数据库连接到 ASP.NET 项目

问题描述

我目前正在尝试自学 ASP.NET,因为我很快就会在工作中需要它。出于测试目的,我想创建一个包含 1 个或 2 个 RazorPages 的简单项目,它从我的本地主机上的 MySQL 数据库中获取数据。我正在使用 Visual Studio Community 版本。我首先创建了一个新的 ASP.NET Core Web 应用程序项目,然后添加了一个“新连接”(见截图)

在此处输入图像描述

我还安装了包“MySqlData”、“MySqlData.EntityFrameworkCore”和“MySQLConnector”。在 appsettings.json 中,我添加了

  "ConnectionStrings": {
"RazorPagesPlayersContext": "server=localhost;user=root;password=password;database=players;"

}

在 Startup.cs 中,我配置了

 public void ConfigureServices(IServiceCollection services)
    {
        services.AddRazorPages();
        services.AddDbContext<RazorPagesPlayersContext>(options => options.UseSqlite(Configuration.GetConnectionString("RazorPagesPlayersContext")));
    }

但是,当我转到创建页面并将新的“玩家”发布到数据库中时,我收到了错误

ArgumentException: Connection string keyword 'server' is not supported

我的上下文文件看起来像这样

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using RazorPagesPlayers.Models;

namespace RazorPagesPlayers.Data
 {
public class RazorPagesPlayersContext : DbContext
   {
  
    public RazorPagesPlayersContext (DbContextOptions<RazorPagesPlayersContext> options)
        : base(options)
    {
    }
    
    public DbSet<RazorPagesPlayers.Models.Player> Player { get; set; }
   }
  }

当我检查“连接的服务”时,我只能看到这个

在此处输入图像描述

可以看到,这个服务的连接字符串和我在appsettings.json中添加的连接字符串没有任何关系。当我尝试更改它时,它只会切换回来。所以我猜测与 MySQL 的连接失败或者我在这里混淆了事情?我什至不确定我是否在寻找正确的方向,但每一个提示都会受到欢迎。非常感谢您提前

编辑:当我将 Startup.cs 中的服务配置更改为

 services.AddDbContext<RazorPagesPlayersContext>(options => options.UseMySql(Configuration.GetConnectionString("RazorPagesPlayersContext")));

它告诉我“DbContextOptionsBuilder”不包含“UseMySql”的定义,并建议将其更改为 UseMySQL。然而,这会导致错误:

TypeLoadException: Method 'Create' in type 'MySql.Data.EntityFrameworkCore.Query.Internal.MySQLSqlTranslatingExpressionVisitorFactory' from assembly 'MySql.Data.EntityFrameworkCore, Version=8.0.22.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' does not have an implementation.

安装 Pomelo 有什么意义吗?

标签: c#mysqlasp.netvisual-studio

解决方案


推荐阅读