前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Entity Framework中重用现有的数据库连接字符串

在Entity Framework中重用现有的数据库连接字符串

作者头像
跟着阿笨一起玩NET
发布2018-09-19 15:41:50
1K0
发布2018-09-19 15:41:50
举报

本文转载:http://www.cnblogs.com/dudu/archive/2011/01/29/entity_framework_connection_string.html

如果EF在使用实体模型时候,即model first 和db first 时候,则

Entity Framework使用的连接字符串与ADO.NET是不同的,见下图:

相比于ADO.NET,Entity Framework的连接字符串不仅要存放metadata配置信息,还要存放完整的数据库连接字符串(上图中的"provider connection string"部分)。

这样的设计有两个不足之处:

  1. 连接字符串配置复杂;
  2. 无法重用现有的ADO.NET数据库连接字符串。
代码语言:javascript
复制
我在技术推广中这么写的:
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 = "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文件如下:

代码语言:javascript
复制
Entity FreamWork配置文件方式
<add name="LGSCMSEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;Server=zengfanlong;database=LGSCMS;uid=sa;pwd=123456;&quot;" providerName="System.Data.EntityClient" />

ADO.NET方式配置文件
<add name="LGSCMSEntities" connectionString="Server=zengfanlong;database=LGSCMS;uid=sa;pwd=123456;"/>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-09-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档