gpt4 book ai didi

entity-framework-4.1 - 在 Entity Framework 4.1 POCO 中更改连接字符串

转载 作者:行者123 更新时间:2023-12-01 05:40:46 26 4
gpt4 key购买 nike

我正在使用 EF4.1,升级了我的项目,生成了 POCO 类以现在使用 DbContext 并且玩得很开心 - 除了动态更改连接字符串。该项目导入 CSV 文件,然后将数据合并到 2 个(相同的)数据库中。一个 DB 是我们的 PROD 服务器,另一个是我们的 DEV 服务器。当我切换到 POCO 时,我意识到我进行更改的方式(如下)不再有效。

我在做什么:

internal static Model.RIVFeedsEntities GetFeedsDB()
{
_serverName = "RivDB1";

// Create the dbZach database entity...
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
string connString = String.Format(@"metadata=res://*/Model.Feeds.csdl|res://*/Model.Feeds.ssdl|res://*/Model.Feeds.msl;provider=System.Data.SqlClient;provider connection string='Data Source={0};Initial Catalog={1};Integrated Security=True;MultipleActiveResultSets=True'"
, _serverName
, _databaseName);
entityBuilder.ConnectionString = connString;
entityBuilder.Metadata = "res://*/";
_sourceEntities = new Model.RIVFeedsEntities(entityBuilder.ConnectionString);
_sourceEntities.CommandTimeout = 60;
return _sourceEntities;
}

internal static Model.RIVFeedsEntities GetFeedsDBDev()
{
_serverName = "DB1";

// Create the dbZach database entity...
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
string connString = String.Format(@"metadata=res://*/Model.Feeds.csdl|res://*/Model.Feeds.ssdl|res://*/Model.Feeds.msl;provider=System.Data.SqlClient;provider connection string='Data Source={0};Initial Catalog={1};Integrated Security=True;MultipleActiveResultSets=True'"
, _serverName
, _databaseName);
entityBuilder.ConnectionString = connString;
entityBuilder.Metadata = "res://*/";
_sourceEntities = new Model.RIVFeedsEntities(entityBuilder.ConnectionString);
_sourceEntities.CommandTimeout = 60;
return _sourceEntities;
}

如您所见,我真正需要做的就是更改连接字符串的 SERVER 部分。

您如何使用 DbContext 对象执行此操作?我可以看到 base 允许在构造函数中发送名称或 conn 字符串,但 DbContext 本身没有,我没有看到任何暴露的东西。

TIA

最佳答案

当您从 DbContext 继承时,有一些 DbContext 构造函数可以从中重写。

然后您可以从不同的签名中选择最适合您的签名。

在本论坛http://social.msdn.microsoft.com/Forums/en/adodotnetentityframework/thread/2efc32f7-23ad-4fad-84cf-279badb394a5

他们使用 SqlConnection 对象或 ConnectionString。

我认为这仍然适用于 EF 4.1 的 RTW 版本

关于entity-framework-4.1 - 在 Entity Framework 4.1 POCO 中更改连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5706410/

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