2011-12-17 140 views
3

我有一个包含三个edmx文件的dot net 4.0 DAL库项目。我选择将数据模型分成三个文件,因为我的数据库中有很多表,从我在Stackoverflow上阅读的内容看,这似乎是最佳做法。用于多个edmx文件的Linq-to-Entities连接字符串

但现在我在我的App.config中有三个连接字符串条目,基本上使用相同的数据库连接。我可以以某种方式返回旧的ado.net样式,只有一个连接字符串在我的配置文件中?

感谢, 延

回答

1

在你的代码可以使用EntityConnectionStringBuilder从该存储在用户配置文件中的“常规”连接字符串建立三个单独的连接字符串。

你会得到这样的:

string providerString = <load your connection string>; 

// Initialize the EntityConnectionStringBuilder. 
EntityConnectionStringBuilder entityBuilder = 
    new EntityConnectionStringBuilder(); 

//Set the provider name. 
entityBuilder.Provider = providerName; 

// Set the provider-specific connection string. 
entityBuilder.ProviderConnectionString = providerString; 

// Set the Metadata location. 
entityBuilder.Metadata = @"res://*/AdventureWorksModel.csdl| 
          res://*/AdventureWorksModel.ssdl| 
          res://*/AdventureWorksModel.msl"; 

您可以创建三个EntityConnectionStrings和改变每一个元数据属性指向你的模型。

但请注意,这将导致代码中的连接字符串的硬编码部分。

+0

伟大的这正是我需要的。非常感谢。 – 2011-12-17 08:50:45