這篇文章主要講解了“ADO.NET如何自定義對(duì)象”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“ADO.NET如何自定義對(duì)象”吧!
成都創(chuàng)新互聯(lián)自2013年創(chuàng)立以來(lái),是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元雁山做網(wǎng)站,已為上家服務(wù),為雁山各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
ADO.NET實(shí)體框架提供了相應(yīng)的工具,以便根據(jù) 實(shí)體數(shù)據(jù)模型 (EDM) 的概念性架構(gòu)定義語(yǔ)言 (CSDL) 文件自動(dòng)生成對(duì)象層??梢詫?duì)這些數(shù)據(jù)類進(jìn)行不同程度的自定義,具體取決于應(yīng)用程序的要求。您也可以修改自己的自定義數(shù)據(jù)類,以將其用于 EDM。當(dāng)您從現(xiàn)有應(yīng)用程序升級(jí)數(shù)據(jù)類以使用 實(shí)體框架 時(shí),或者當(dāng)您希望對(duì)創(chuàng)建數(shù)據(jù)類的方式進(jìn)行更多控制時(shí),這很有用。
擴(kuò)展分部數(shù)據(jù)類
EDM 中定義的類型不像面向?qū)ο缶幊讨惺褂玫念惸菢泳哂嘘P(guān)聯(lián)的方法。相反,它們只包含 EDM 中定義的屬性。您可以通過(guò)擴(kuò)展已生成的分部數(shù)據(jù)類向?qū)ο笾刑砑庸δ堋T谕ㄟ^(guò) 實(shí)體數(shù)據(jù)模型工具生成數(shù)據(jù)類時(shí),將以分部類的形式實(shí)現(xiàn)這些數(shù)據(jù)類。分部類將類的定義拆分到兩個(gè)或更多個(gè)源文件中。每個(gè)源文件包含類定義的一部分,當(dāng)編譯應(yīng)用程序時(shí),將組合所有部分。
擁有分部類后,您能夠用單獨(dú)源文件中的自定義方法和屬性擴(kuò)展這些類,而無(wú)需擔(dān)心在已生成的文件刷新時(shí)丟失您的自定義。
自定義業(yè)務(wù)邏輯
在使用生成的數(shù)據(jù)類時(shí),可以在某些對(duì)象服務(wù)操作(例如,更改屬性或關(guān)系)過(guò)程中調(diào)用自定義業(yè)務(wù)邏輯。此業(yè)務(wù)邏輯可能包括在更改屬性或調(diào)用 SaveChanges 時(shí)創(chuàng)建附加驗(yàn)證或登錄。通過(guò)處理由對(duì)象服務(wù)引發(fā)的事件,或者通過(guò)定義在更改屬性時(shí)調(diào)用的自定義分部方法,可以調(diào)用自定義業(yè)務(wù)邏輯。
自定義數(shù)據(jù)類
有某些情況下,只通過(guò)添加方法和屬性來(lái)擴(kuò)展分部類可能無(wú)法提供足夠的靈活性。假定現(xiàn)有一個(gè) .NET Framework 應(yīng)用程序使用 ADO.NET 將數(shù)據(jù)庫(kù)中的數(shù)據(jù)加載到 CLR 對(duì)象中,以供該應(yīng)用程序使用。這些對(duì)象可能包含必須保留在對(duì)象層中的有價(jià)值的自定義和業(yè)務(wù)邏輯。這些自定義可能會(huì)妨礙您將應(yīng)用程序遷移為使用實(shí)體框架。您可能還希望對(duì)實(shí)體類型進(jìn)行更多的控制,而不僅僅是擴(kuò)展生成的分部類。
將自定義數(shù)據(jù)類與 EDM 一起使用的建議方式是從 EntityObject 繼承。Entity Framework 提供了一組接口,如果不能從 EntityObject 繼承,或需要比框架更多的獨(dú)立性時(shí),可以實(shí)現(xiàn)這些接口以將自定義數(shù)據(jù)類用于 EDM。在使用自定義數(shù)據(jù)類時(shí),必須向自定義數(shù)據(jù)類和屬性應(yīng)用屬性,并且在更改屬性時(shí)通知對(duì)象上下文。
生成的數(shù)據(jù)類從 EntityObject 或 ComplexObject 繼承。如果您必須將自定義數(shù)據(jù)類與 EDM 一起使用,建議的方式是修改您的數(shù)據(jù)類,以便從這兩個(gè)基類繼承。通過(guò)這種方式,自定義數(shù)據(jù)類將受益于 EntityObject 所提供的更改跟蹤和關(guān)系管理功能。
在從 EntityObject 和 ComplexObject 繼承時(shí),請(qǐng)記住以下要點(diǎn):
◆類和屬性名稱必須與 EDM 的概念性架構(gòu)定義語(yǔ)言 (CSDL) 文件中定義的實(shí)體類型和屬性名稱相匹配。如果這些名稱不匹配,您必須更改數(shù)據(jù)類和屬性的名稱,或者更新 CSDL 和關(guān)聯(lián)的映射規(guī)范文件MSL 中的名稱。有關(guān)更多信息,請(qǐng)參見(jiàn)如何:自定義實(shí)體數(shù)據(jù)模型以使用ADO.NET自定義對(duì)象(實(shí)體框架)。
◆CSDL 中定義的實(shí)體類型的每個(gè)屬性,都必須在自定義數(shù)據(jù)類中有一個(gè)關(guān)聯(lián)的屬性。自定義數(shù)據(jù)類可以具有其他未映射到 CSDL 中定義的屬性的屬性。
◆您必須向自定義數(shù)據(jù)類和屬性應(yīng)用屬性。這些屬性在對(duì)象和 CSDL 之間提供顯式映射。
◆若要使對(duì)象服務(wù)能夠跟蹤對(duì)ADO.NET自定義對(duì)象進(jìn)行的更改,必須使用 EntityObject 更改報(bào)告方法按照特定模式報(bào)告這些更改。
◆Entity Framework 工具還生成其他能夠簡(jiǎn)化對(duì)象編程的類。對(duì)自定義數(shù)據(jù)類使用此代碼很有用。有關(guān)更多信息,請(qǐng)參見(jiàn)如何:將對(duì)象服務(wù)用于自定義對(duì)象(實(shí)體框架)。
◆在從 EntityObject 繼承時(shí),必須通過(guò)從 ComplexObject 繼承來(lái)實(shí)現(xiàn)復(fù)雜類型。
感謝各位的閱讀,以上就是“ADO.NET如何自定義對(duì)象”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)ADO.NET如何自定義對(duì)象這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
當(dāng)前名稱:ADO.NET如何自定義對(duì)象
分享URL:http://jinyejixie.com/article48/jjjgep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、微信小程序、定制網(wǎng)站、企業(yè)建站、搜索引擎優(yōu)化、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)