zoukankan      html  css  js  c++  java
  • 在Entity Framework中重用现有的数据库连接字符串

    本文转载: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数据库连接字符串。

    我在技术推广中这么写的:
    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文件如下:

    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;"/>
  • 相关阅读:
    《css世界》学习摘要
    微信小程序知识点积累
    事件冒泡 事件委派
    遍历后台返回数据
    初识open stack
    keystone初识
    KVM详解
    openstack详解
    NoSQL之Redis集群理论
    gfs分布式文件系统
  • 原文地址:https://www.cnblogs.com/51net/p/3979501.html
Copyright © 2011-2022 走看看