自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

全面學(xué)習(xí)ADO.NET自定義對象

開發(fā) 后端
這里就ADO.NET自定義對象擴(kuò)展分部數(shù)據(jù)類、自定義業(yè)務(wù)邏輯、自定義數(shù)據(jù)類三方面做出了詳細(xì)的介紹,希望對大家有幫助。

最近收集了很多關(guān)于實體框架的知識,這里我無私的奉獻(xiàn)給大家,希望對大家有幫助。ADO.NET實體框架提供了相應(yīng)的工具,以便根據(jù) 實體數(shù)據(jù)模型 (EDM) 的概念性架構(gòu)定義語言 (CSDL) 文件自動生成對象層。可以對這些數(shù)據(jù)類進(jìn)行不同程度的自定義,具體取決于應(yīng)用程序的要求。您也可以修改自己的自定義數(shù)據(jù)類,以將其用于 EDM。當(dāng)您從現(xiàn)有應(yīng)用程序升級數(shù)據(jù)類以使用 實體框架 時,或者當(dāng)您希望對創(chuàng)建數(shù)據(jù)類的方式進(jìn)行更多控制時,這很有用。

擴(kuò)展分部數(shù)據(jù)類

EDM 中定義的類型不像面向?qū)ο缶幊讨惺褂玫念惸菢泳哂嘘P(guān)聯(lián)的方法。相反,它們只包含 EDM 中定義的屬性。您可以通過擴(kuò)展已生成的分部數(shù)據(jù)類向?qū)ο笾刑砑庸δ?。在通過 實體數(shù)據(jù)模型工具生成數(shù)據(jù)類時,將以分部類的形式實現(xiàn)這些數(shù)據(jù)類。分部類將類的定義拆分到兩個或更多個源文件中。每個源文件包含類定義的一部分,當(dāng)編譯應(yīng)用程序時,將組合所有部分。有關(guān)更多信息,請參見分部 (Visual Basic) 或分部(類型)(C# 參考)。

擁有分部類后,您能夠用單獨(dú)源文件中的自定義方法和屬性擴(kuò)展這些類,而無需擔(dān)心在已生成的文件刷新時丟失您的自定義。有關(guān)更多信息,請參見如何:自定義生成的數(shù)據(jù)對象(實體框架)。

自定義業(yè)務(wù)邏輯

在使用生成的數(shù)據(jù)類時,可以在某些對象服務(wù)操作(例如,更改屬性或關(guān)系)過程中調(diào)用自定義業(yè)務(wù)邏輯。此業(yè)務(wù)邏輯可能包括在更改屬性或調(diào)用 SaveChanges 時創(chuàng)建附加驗證或登錄。通過處理由對象服務(wù)引發(fā)的事件,或者通過定義在更改屬性時調(diào)用的自定義分部方法,可以調(diào)用自定義業(yè)務(wù)邏輯。

自定義數(shù)據(jù)類

有某些情況下,只通過添加方法和屬性來擴(kuò)展分部類可能無法提供足夠的靈活性。假定現(xiàn)有一個 .NET Framework 應(yīng)用程序使用 ADO.NET 將數(shù)據(jù)庫中的數(shù)據(jù)加載到 CLR 對象中,以供該應(yīng)用程序使用。這些對象可能包含必須保留在對象層中的有價值的自定義和業(yè)務(wù)邏輯。這些自定義可能會妨礙您將應(yīng)用程序遷移為使用實體框架。您可能還希望對實體類型進(jìn)行更多的控制,而不僅僅是擴(kuò)展生成的分部類。

#T#將自定義數(shù)據(jù)類與 EDM 一起使用的建議方式是從 EntityObject 繼承。Entity Framework 提供了一組接口,如果不能從 EntityObject 繼承,或需要比框架更多的獨(dú)立性時,可以實現(xiàn)這些接口以將自定義數(shù)據(jù)類用于 EDM。有關(guān)更多信息,請參見實現(xiàn)自定義數(shù)據(jù)類接口(實體框架)。在使用自定義數(shù)據(jù)類時,必須向自定義數(shù)據(jù)類和屬性應(yīng)用屬性,并且在更改屬性時通知對象上下文。

生成的數(shù)據(jù)類從 EntityObject 或 ComplexObject 繼承。如果您必須將自定義數(shù)據(jù)類與 EDM 一起使用,建議的方式是修改您的數(shù)據(jù)類,以便從這兩個基類繼承。通過這種方式,自定義數(shù)據(jù)類將受益于 EntityObject 所提供的更改跟蹤和關(guān)系管理功能。

在從 EntityObject 和 ComplexObject 繼承時,請記住以下要點:
◆類和屬性名稱必須與 EDM 的概念性架構(gòu)定義語言 (CSDL) 文件中定義的實體類型和屬性名稱相匹配。如果這些名稱不匹配,您必須更改數(shù)據(jù)類和屬性的名稱,或者更新 CSDL 和關(guān)聯(lián)的映射規(guī)范文件MSL 中的名稱。有關(guān)更多信息,請參見如何:自定義實體數(shù)據(jù)模型以使用ADO.NET自定義對象(實體框架)。
◆CSDL 中定義的實體類型的每個屬性,都必須在自定義數(shù)據(jù)類中有一個關(guān)聯(lián)的屬性。自定義數(shù)據(jù)類可以具有其他未映射到 CSDL 中定義的屬性的屬性。
◆您必須向自定義數(shù)據(jù)類和屬性應(yīng)用屬性。這些屬性在對象和 CSDL 之間提供顯式映射。有關(guān)更多信息,請參見對象-實體映射屬性(實體框架) 和如何:將ADO.NET自定義對象映射到實體(實體框架)。
◆若要使對象服務(wù)能夠跟蹤對ADO.NET自定義對象進(jìn)行的更改,必須使用 EntityObject 更改報告方法按照特定模式報告這些更改。有關(guān)更多信息,請參見報告自定義數(shù)據(jù)類中的更改(實體框架)。
◆Entity Framework 工具還生成其他能夠簡化對象編程的類。對自定義數(shù)據(jù)類使用此代碼很有用。有關(guān)更多信息,請參見如何:將對象服務(wù)用于自定義對象(實體框架)。
◆在從 EntityObject 繼承時,必須通過從 ComplexObject 繼承來實現(xiàn)復(fù)雜類型。有關(guān)更多信息,請參見復(fù)雜類型對象(實體框架)。

責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2009-11-11 09:48:08

ADO.NET Com

2009-12-28 13:47:31

ADO.NET對象

2009-11-12 14:37:26

ADO.NET結(jié)構(gòu)

2009-11-03 15:06:32

ADO.NET鏈接對象

2009-11-04 12:45:33

ADO.NET Dat

2010-01-04 10:14:04

ADO.NET對象模型

2009-10-29 13:34:01

ADO.NET對象

2009-10-29 11:08:20

ADO.NET Dat

2009-10-29 10:10:10

ADO.NET數(shù)據(jù)集類

2009-11-13 14:38:45

ADO.NET Dat

2009-12-21 17:35:24

ADO.NET對象

2009-11-04 10:23:05

ADO.NET Con

2009-11-03 15:24:14

ADO.NET對象模型

2009-12-21 17:02:19

ADO.NET Sql

2009-06-18 09:56:44

ADO.NET對象模型

2009-11-12 16:04:42

ADO.NET對象查詢

2009-11-04 11:30:35

ADO.NET Dat

2009-12-18 14:27:24

ADO.NET對象

2009-11-04 17:03:55

ADO.NET Exc

2009-11-13 09:45:54

ADO.NET程序集
點贊
收藏

51CTO技術(shù)棧公眾號