2011-04-18 113 views
4

我正在使用EF4.1,已升級我的項目,生成POCO類以現在使用DbContext並且有一段有趣的時間 - 除了更改動態連接字符串。該項目導入CSV文件,然後將數據合併到2個(相同)數據庫中。一個DB是我們的PROD服務器,另一個是我們的DEV服務器。我意識到我在做改變的方式(下文)不再適用於我切換到POCO。更改實體框架4.1中的連接字符串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; 
} 

正如你所看到的一切我真的需要做的是改變連接字符串的服務器部分。

如何使用DbContext對象執行此操作?我可以看到基礎允許在構造函數中發送名稱或連接字符串,但DbContext本身不會,我也沒有看到任何公開的內容。

TIA

回答