gpt4 book ai didi

entity-framework - 是否可以从 Azure 角色环境读取 EF Code First 连接字符串

转载 作者:行者123 更新时间:2023-12-03 01:56:25 25 4
gpt4 key购买 nike

我有一个 Azure 辅助角色,它使用 Entity Framework Code First (5.0) 与 SQL Azure 数据库进行通信。目前,我在辅助角色的 app.config 中有连接字符串,但我想将连接字符串移至辅助角色的角色环境设置中,以便使我的实时服务同事更轻松地更改连接字符串,而无需重新部署 Azure包。

目前我正在初始化表单中的上下文:

protected BaseContext()
: base("name=DataStore")
{
try
{
((IObjectContextAdapter)this).ObjectContext.Connection.Open();

var storeConnection = (SqlConnection)currentDbConn;
new SqlCommand("declare @i int", storeConnection).ExecuteNonQuery();
}
catch (Exception ex)
{
currentDbConn.Close();
Trace.TraceError("Error occured while getting connection to context", ex.Message);
throw;
}
}

我无法覆盖 DbContext(string nameOrConnectionString) 以便能够从 RoleEnvironment 中提取连接字符串,并且我还尝试创建一个新的 SqlConnection 并分配该 Database.Connection 属性,但没有 setter :/.

有人对如何实现这一目标有任何想法或指导吗?

预先感谢您花时间查看此问题。

最佳答案

我建议在您的上下文中创建一个 ContextFactory 类或一个静态工厂方法,如下所示

public class BaseContext : DbContext
{
public BaseContext(string connectionString)
: base(connectionString)
{
}

public static BaseContext Create()
{
return new BaseContext(
RoleEnvironment.GetConfigurationSettingValue("connectionString"));
}
}

关于entity-framework - 是否可以从 Azure 角色环境读取 EF Code First 连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16327551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com