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)