ADO.NET Entity Framework發布以來,本人也一直在用,深感好用,忍不住地要感謝微軟啊!由於項目結構創建完成后,沒怎么改動過,所以一直沒出題過問題,可最近由於改動了下命名空間,問題來了,正是標題中的“無法加載指定的元數據資源”。經過百般調試終於解決了,寫下做為記錄。
- 開發工具:VS 2010 CN
- 開發語言:Visual C#
- ADO.NET Entity Framework
- 模型名稱:Authorize.edmx
- 實體容器:AuthorizeContainer
先詳細說下問題出現的原因:
自從項目創建以來 Authorize.edmx 模型文件一直放在 Model文件夾下
項目一直調試運行,沒有出現過錯誤,最近因項目需要將Model 更名為Models問題隨之而來,在調用實體容器構造函數時便出現以下錯誤:
“無法加載指定的元數據資源”,在這里聲明更改命名空間后項目重新生成成功。卻突然彈出這么一個錯誤,剛開始真是一頭霧水,沒辦法,只能解決,重新生成元數據后,很失望沒有解決。。。。。
直接說結果吧,在打開App.Config的時候找到了原因,就在這里:
這個是更改之前的:
<add name="AuthorizeContainer" connectionString="metadata=res://*/Model.Authorize.csdl|res://*/Model.Authorize.ssdl|res://*/Model.Authorize.msl;provider=System.Data.SqlClient;provider connection string="Data Source=Server;Initial Catalog=EIPS;Persist Security Info=True;User ID=sa;Password=123;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
這個是更改之后的:
<add name="AuthorizeContainer" connectionString="metadata=res://*/Models.Authorize.csdl|res://*/Models.Authorize.ssdl|res://*/Models.Authorize.msl;provider=System.Data.SqlClient;provider connection string="Data Source=Server;Initial Catalog=EIPS;Persist Security Info=True;User ID=sa;Password=123;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
就是“metadata=res://*/Models.Authorize.csdl|res://*/Models.Authorize.ssdl|res://*/Models.Authorize.msl;”
metadata:指明.csdl/.ssdl/.msl三個文件的路徑
小記:更改模型命名空間一定不要忘了在App.Config中更改.csdl/.ssdl/.msl三個文件的路徑,本文能夠寫出來,全是因自身的基礎知識不好,希望大家也多多補充基礎知識。