日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
基于ADO.NET Entity Framework問題解決方案

ADO.NET Entity有很多值得學(xué)習(xí)的地方,這里我們主要介紹ADO.NET Entity,包括介紹ADO.NET Entity等方面??纯聪聢D,解決方案里包括兩個Project:EFDemo.Console 和 EFDemo.Models 。這里我把EDM都放在 EFDemo.Models Class Library里。在 EFDemo.Models Class Library 中添加一個"ADO.NET Entity Data Model" 項(xiàng),名為"UserModel"。 通過向?qū)渲眠B接等操作后就會創(chuàng)建一個EDM。EDM包括三個文件(.csdl、.msl 和.ssdl 文件)。

創(chuàng)新互聯(lián)建站,專注為中小企業(yè)提供官網(wǎng)建設(shè)、營銷型網(wǎng)站制作、成都響應(yīng)式網(wǎng)站建設(shè)、展示型網(wǎng)站建設(shè)、做網(wǎng)站等服務(wù),幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價(jià)值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營銷推廣問題。

創(chuàng)建完EDM后會在配置文件(這里是App.Config)的 節(jié)點(diǎn)里添加一些信息。如例子中創(chuàng)建UserModel.edmx后會在配置文件中添加一個子節(jié)點(diǎn):

 
 
  1.    
  2.  name="UserEntities" connectionString="metadata=.\UserModel.csdl|.\UserModel.ssdl|.\UserModel.msl;  
  3. provider=System.Data.SqlClient;provider connection string="Data Source=xxxxxx;Initial Catalog=SAASDB;
    Persist Security Info=True;User ID=sa;Password=xxx;MultipleActiveResultSets=False"" providerName="System.Data.EntityClient" /> 
    connectionStrings> 

#T#注意突出顯示在這里指定這三個文件的位置,".\"表示Build后這三個文件會被部署到"Build Output Path"位置?;氐嚼又?,EFDemo.Console Project 引用 EFDemo.Models Project,這樣就可以在 EFDemo.Console Project 中使用 UserModel 了,寫完代碼后,把上面配置文件信息Copy到EFDemo.Console Project 的App.config中, Ctrl + F5 運(yùn)行,發(fā)現(xiàn)出現(xiàn)下面錯誤信息:

 
 
  1. System.Data.MetadataException: The specified metadata path is not valid.  
  2. A valid path must be either an existing directory, an existing file with extension '.csdl',   
  3. '.ssdl', or '.msl', or a URI that identifies an embedded resource. 

明顯看出是找不到UserModel.csdl、UserModel.ssdl和UserModel.msl這三個文件,到EFDemo.Console的Build Output Path中看確實(shí)沒有。有一種解決方法是,每次Build完EFDemo.Models Project后,Copy這三個文件到EFDemo.Console Project的bin里,但是這種做法明顯不是***的。

可以通過以下的配置來更好的解決這問題。

1.打開UserModel Model的屬性面板,設(shè)置“Metadata Artifact Processing ” 選項(xiàng)的值為“Embed in Output Assembly ”。表示這三個文件會被嵌入到Assembly里。

2. 打開UserModel.edmx項(xiàng)的屬性面板,確認(rèn)Build Action值為"EntityDeploy"。以上配置完成之后配置文件中的UserEntities節(jié)點(diǎn)值自動改為:

 
 
  1.   name="UserEntities" connectionString="metadata=res://*/UserModel.csdl|res:
    //*/UserModel.ssdl|res://*/UserModel.msl;provider=System.Data.SqlClient;provider connection string="
    Data Source=xxxxxx;Initial Catalog=SAASDB;Persist Security Info=True;User ID=sa;Password=xxx;MultipleActiveResultSets=False"
    " providerName="System.Data.EntityClient" />  connectionStrings> 

注意看突出顯示的"metadata=res://*/UserModel.csdl|res: //*/UserModel.ssdl|res://*/UserModel.msl"。"*"表示它會去所有的Aseembly中找這三個被嵌入在 Assembly中的文件。當(dāng)然如果我們明確知道這三個文件放在EFDemo.Models.dll 這個Assembly中的話,應(yīng)該指定只在該Assembly中找,而不要浪費(fèi)時(shí)間在所有Assembly中找:

 
 
  1.   name="UserEntities" connectionString="metadata=res://EFDemo.Models/UserModel.csdl|res:
    //EFDemo.Models/UserModel.ssdl|res://EFDemo.Models/UserModel.msl;provider=System.Data.SqlClient;provider connection 
    string="Data Source=xxxxxx;Initial Catalog=SAASDB;Persist Security Info=True;User ID=sa;Password=xxx;
    MultipleActiveResultSets=False"" providerName="System.Data.EntityClient" />  connectionStrings> 

把這些配置信息更新到EFDemo.Console Project 的App.config中,Ctrl + F5, 運(yùn)行正常。


網(wǎng)站欄目:基于ADO.NET Entity Framework問題解決方案
新聞來源:http://www.dlmjj.cn/article/cooigeg.html