關於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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章