(转)关于EntityFramework中连接字符串的说明

1. 基本格式

<connectionStrings>
	<add name="MyEntities" connectionString="metadata=
            res://*/Model.csdl|
            res://*/Model.ssdl|
            res://*/Model.msl;provider=System.Data.SqlClient;provider connection string='Data Source=.;Initial Catalog=test_db;Persist Security Info=True;User ID=user;Password=123456;Pooling=False'
            providerName="System.Data.EntityClient" />

2.关于 metadata 部分,有两种方式
2.1. 嵌入模式(新建edmx文件时默认模式)



这种情况下,连接字符串的metadata部分的格式是
metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;
res:// 表示从资源中加载csdl等文件
* 表示EntityFramework会扫描所有加载的Dll
你也可以指定具体的DLL:res://somedll.dll/Model.csdl
2.2. 分离的文件模式
第一步:元数据处理模式设成输出到目录,如下图所示


第二步,编译edmx文件所在的项目,得到 metadata 相关的文件


第三步,在Web项目或主程序项目中以引用的方式添加这三个文件



第四步,编译整个解决方案

此时连接字符串的metadata部分格式如下

web项目:

metadata=~/bin/Model.csdl|~/bin/Model.ssdl|~/bin/Model.msl;

application项目:

metadata=./Model.csdl|./Model.ssdl|./Model.msl;


总结:
Entityframework连接字符串的metadata部分,有两种方式,
一种是资源模式
metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;(资源模式下推荐)
metadata=res://somedll.dll/Model.csdl|somedll.dll/Model.ssdl|somedll.dll/Model.msl;
一种是文件模式
metadata=~/bin/Model.csdl|~/bin/Model.ssdl|~/bin/Model.msl;(web)
metadata=./Model.csdl|./Model.ssdl|./Model.msl;(application)


转: http://blog.csdn.net/tangsilai/article/details/16924937

原文地址:https://www.cnblogs.com/Impulse/p/3698931.html