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)
本文深入解析了Entity Framework连接字符串中的metadata部分,详细比较了资源模式和文件模式的区别,提供了实例说明如何在不同场景下配置连接字符串。
1824

被折叠的 条评论
为什么被折叠?



