• 在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;"/>
  • 相关阅读:
    「LibreOJ β Round #4」子集
    「LibreOJ β Round #4」框架
    「LibreOJ β Round #4」游戏
    [HNOI2008]GT考试
    [HNOI2008]水平可见直线
    UVA 1650 Number String
    [USACO14JAN]Recording the Moolympics
    UVA 1390 Interconnect
    UVA 12520 Square Garden
    [HNOI2008]神奇的国度
  • 原文地址:https://www.cnblogs.com/51net/p/3979501.html
Copyright © 2020-2023  润新知