微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决将 .Net 4.8 EF6 SQL Server webapi 项目转换为 AWS RDS Aurora MySQL

我使用 sql Server 进行本地开发,并试图让它在 AWS 中运行。

我安装了“AWS Toolkit for VS2019”并发布到 AWS Elastic Beanstalk。

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

中所述

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

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

当我调用测试“Hello World”api 函数时,它返回 Hello World。

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

连接字符串中不需要关键字数据源。

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

操作无法完成,因为 DbContext 已被 处置。

我不确定 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 数据源使用实体框架创建 .Net 项目的示例项目或说明吗?或者也许是下一步尝试的方向?和/或 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 Server 实体框架项目转换为 MySQL 的方法 -- 不要。

而是按照以下步骤操作:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。