在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"部分)。

本文转载: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;"/>

 

目录
相关文章
|
3月前
|
关系型数据库 MySQL 数据库
MySQL数据库-截取字符串
MySQL数据库-截取字符串
26 0
|
3月前
|
关系型数据库 MySQL 数据库
MySQL数据库-字符串位数不够前面补0
MySQL数据库-字符串位数不够前面补0
22 0
|
开发框架 .NET 数据库
.NETCore 获取数据库上下文[实例的方法和配置连接字符串
.NETCore 获取数据库上下文[实例的方法和配置连接字符串
704 1
|
4月前
|
前端开发 Java API
Java【代码分享 05】实现字符串转数据库的inStr使用JDK8 stream.collect(Collectors.joining(delimiter, prefix, suffix)) 实现
Java【代码分享 05】实现字符串转数据库的inStr使用JDK8 stream.collect(Collectors.joining(delimiter, prefix, suffix)) 实现
29 0
|
9月前
|
SQL 关系型数据库 MySQL
php替换mysql数据库中逗号组成的字符串的解决方案
php替换mysql数据库中逗号组成的字符串的解决方案
57 0
|
10月前
|
安全 数据库连接 数据库
sscms迁移服务器,修改数据库连接字符串
sscms迁移服务器,修改数据库连接字符串,siteserver
190 0
sscms迁移服务器,修改数据库连接字符串
|
JSON fastjson 数据库
解析JSON字符串并添加到数据库中(超简单)
解析JSON字符串并添加到数据库中(超简单)
286 6
解析JSON字符串并添加到数据库中(超简单)
|
关系型数据库 MySQL
【MySQL】数据库函数通关教程上篇(聚合、数学、字符串、日期、控制流函数)(下)
文章目录 写在前面 1 聚合函数 1.1 GROUP_CONCAT() 1.2 其他聚合函数 2 数学函数 3 字符串函数 4 日期函数 4.1 常见日期函数与使用 4.2 日期格式 5 控制流函数 5.1 if逻辑判断语句 5.2 case when语句
【MySQL】数据库函数通关教程上篇(聚合、数学、字符串、日期、控制流函数)(下)
|
关系型数据库 MySQL
【MySQL】数据库函数通关教程上篇(聚合、数学、字符串、日期、控制流函数)(上)
文章目录 写在前面 1 聚合函数 1.1 GROUP_CONCAT() 1.2 其他聚合函数 2 数学函数 3 字符串函数 4 日期函数 4.1 常见日期函数与使用 4.2 日期格式 5 控制流函数 5.1 if逻辑判断语句 5.2 case when语句
【MySQL】数据库函数通关教程上篇(聚合、数学、字符串、日期、控制流函数)(上)

热门文章

最新文章