http://www.cnblogs.com/dudu/archive/2011/01/29/entity_framework_connection_string.html
Entity Framework使用的连接字符串与ADO.NET是不同的,见下图:
相比于ADO.NET,Entity Framework的连接字符串不仅要存放metadata配置信息,还要存放完整的数据库连接字符串(上图中的"provider connection string"部分)。
这样的设计有两个不足之处:
1. 连接字符串配置复杂;
2. 无法重用现有的ADO.NET数据库连接字符串。
我觉得更合理的设计应该是将数据库连接字符串独立出来,并提供一个"provider connection string name"设置,在这个设置中可以指定“数据库连接字符串”的名称,效果见下图:
这样既简单,又能重用,多好!
YY之后,还是要回到现实,Entity Framework就是这个鸟样,现有的数据库连接字符串我就是想重用,那怎么办呢?
自己创建EntityConnection,并将之传递给ObjectContext的构造函数,代码如下:
public CNBlogsObjectContext() : base (BuildConnection( " CNBlogsDB " ), " club_CNBlogsContainer " ){ } static EntityConnection BuildConnection( string connectionStringName){ string connectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString; MetadataWorkspace workspace = new MetadataWorkspace( new string [] { " res://*/ " }, new Assembly[] { Assembly.GetExecutingAssembly() }); SqlConnection sqlConnection = new SqlConnection(connectionString); return new EntityConnection(workspace, sqlConnection);}