使用环境变量为Entity Framework 6设置数据库上下文

时间:2019-01-14 09:43:22

标签: azure asp.net-web-api entity-framework-6 database-connection

在Azure上首先使用实体​​框架代码从ASP.NET WebAPI 2应用程序连接到远程MySQL数据库服务器时,我面临着挑战。

在我的本地服务器上工作正常。

这是Web.config中的连接字符串

<connectionStrings>
    <add name="AngryUsersContext" providerName="MySql.Data.MySqlClient" connectionString="server=mydbhost;port=3306;database=test_db;uid=gq_user;password=*****" />
</connectionStrings>

这是上下文类的一部分

[DbConfigurationType(typeof(MySqlEFConfiguration))]
public class AngryUsersContext : DbContext
{
    public AngryUsersContext() : base("name=AngryUsersContext")
    {
        Database.SetInitializer(new MigrateDatabaseToLatestVersion<AngryUsersContext, AngryUsers.Migrations.Configuration>());
    }

    public System.Data.Entity.DbSet<AngryUsers.Models.Complaint> Complaints { get; set; }

    ...

我确实在应用程序设置上设置了连接字符串。我尝试了Type:Custom和MySQL,但是没有一个起作用。 enter image description here

我认为我的代码应该从环境变量中加载连接字符串以使用并连接到数据库。我不知道如何修改上下文类来实现这一目标。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

  

我认为我的代码应该从环境变量中加载连接字符串以使用并连接到数据库。我不知道如何修改上下文类来实现这一目标。

从Visual Studio发布项目并单击此选项Use this connection string at runtime(update destination web.config)时,它将用上面提供的门户网站上的连接字符串覆盖本地连接字符串

enter image description here

有关更多详细信息,您可以参考此article