首页 > 代码库 > 在Entity Framework中重用现有的数据库连接字符串
在Entity Framework中重用现有的数据库连接字符串
本文转载: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数据库连接字符串。
我在技术推广中这么写的:public class DALBase{ public NWEntities NWContext { get; set; } public DALBase() { string providerString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString; string conn = GetEntityConnString(providerString); NWContext = new NWEntities(conn); } private string GetEntityConnString(string providerString) { EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(); //Metadata属性的值,是从向导生成的Config粘贴过来的 entityBuilder.Metadata = http://www.mamicode.com/"res://*/NW.csdl|res://*/NW.ssdl|res://*/NW.msl"; entityBuilder.ProviderConnectionString = providerString; entityBuilder.Provider = "System.Data.SqlClient"; return entityBuilder.ToString(); }}
注意上面中的 entityBuilder.Metadata = "res://*/NW.csdl|res://*/NW.ssdl|res://*/NW.msl";
metadata:指明.csdl/.ssdl/.msl三个文件的路径,要与你的edmx文件名称一致。
web.config文件如下:
Entity FreamWork配置文件方式
<add name="LGSCMSEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="Server=zengfanlong;database=LGSCMS;uid=sa;pwd=123456;"" providerName="System.Data.EntityClient" />
ADO.NET方式配置文件<add name="LGSCMSEntities" connectionString="Server=zengfanlong;database=LGSCMS;uid=sa;pwd=123456;"/>
在Entity Framework中重用现有的数据库连接字符串
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。