将 .Net 4.8 EF6 SQL 服务器 webapi 项目转换为 AWS RDS Aurora MySQL

Convert .Net 4.8 EF6 SQL Server webapi project to AWS RDS Aurora MySQL

我使用 SQL 服务器在本地开发并试图让它在 AWS 中运行。

我安装了“适用于 VS2019 的 AWS 工具包”并发布到 AWS Elastic Beanstalk。

我修改了代码以获取连接属性,如 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_NET.rds.html

中所述

我还创建了数据库并用数据填充了它。

我加载了 Pomelo.EntityFrameworkCore.MySql NuGet 包。

当我调用测试“Hello World”时 api 运行它 returns Hello World。

当我尝试调用访问数据库的函数时,我遇到的第一个错误是

Keyword Data Source not expected in the connection string.

如果我刷新浏览器,我会收到下一个错误

The operation cannot be completed because the DbContext has been disposed.

我不确定 provider 和 providerName 部分应该是什么,或者应该如何使用 AppSettings 设置它以确定连接字符串。

public static class RDS_Helper
{
    public static string GetRDSConnectionString()
    {
        var appConfig = ConfigurationManager.AppSettings;

        string dbname = appConfig["RDS_DB_NAME"];

        if (string.IsNullOrEmpty(dbname)) return null;

        string username = appConfig["RDS_USERNAME"];
        string password = appConfig["RDS_PASSWORD"];
        string hostname = appConfig["RDS_HOSTNAME"];
        string port = appConfig["RDS_PORT"];
        //return $"data source={hostname}:{port};initial catalog={dbname};persist security info=True;user id={username};password={password};MultipleActiveResultSets=True;App=EntityFramework;";
        return $"metadata=res://*/MyContext.csdl|res://*/MyContext.ssdl|res://*/MyContext.msl;provider=System.Data.SqlClient;provider connection string="data source={hostname}:{port};initial catalog={dbname};persist security info=True;user id={username};password={password};MultipleActiveResultSets=True;App=EntityFramework"";
    }
}

这里是我创建上下文的地方:

public static class Conn
{
    private static MyData.MyContext _db;
    public static MyData.MyContext db
    {
        get
        {
            if (_db == null) _db = new MyContext(RDS_Helper.GetRDSConnectionString());
            // providerName="System.Data.EntityClient"
            return _db;
        }
    }
}

任何人都可以指导我使用 AWS RDS 数据源使用 Entity Framework 创建 .Net 项目的示例项目或说明吗?或者也许是关于下一步尝试的一些方向? and/or Provider 和 ProviderName 应该使用什么值?

在此先感谢您的帮助。

<sarcasm>
I'm amazed at how many people stepped up to the plate to try to help me with this problem.
</sarcasm>

以下是将 SQL 服务器 Entity Framework 项目转换为 MySQL 的方法 -- 不要。

而是按照以下步骤操作:

  1. 为 Visual Studio
  2. 安装 MySQL
  3. 创建一个新的 .Net Class 库项目
  4. 安装“MySql.Data.EntityFramework”的 NuGet 包
  5. 为该项目创建一个新的“ADO.NET 实体数据模型”,使用“MySql 数据库”作为数据源(当您创建与数据库的连接时应该出现