您好,登錄后才能下訂單哦!
這篇文章主要講解了“ADO.NET如何自定義對象”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ADO.NET如何自定義對象”吧!
ADO.NET實體框架提供了相應的工具,以便根據 實體數據模型 (EDM) 的概念性架構定義語言 (CSDL) 文件自動生成對象層。可以對這些數據類進行不同程度的自定義,具體取決于應用程序的要求。您也可以修改自己的自定義數據類,以將其用于 EDM。當您從現有應用程序升級數據類以使用 實體框架 時,或者當您希望對創建數據類的方式進行更多控制時,這很有用。
擴展分部數據類
EDM 中定義的類型不像面向對象編程中使用的類那樣具有關聯的方法。相反,它們只包含 EDM 中定義的屬性。您可以通過擴展已生成的分部數據類向對象中添加功能。在通過 實體數據模型工具生成數據類時,將以分部類的形式實現這些數據類。分部類將類的定義拆分到兩個或更多個源文件中。每個源文件包含類定義的一部分,當編譯應用程序時,將組合所有部分。
擁有分部類后,您能夠用單獨源文件中的自定義方法和屬性擴展這些類,而無需擔心在已生成的文件刷新時丟失您的自定義。
自定義業務邏輯
在使用生成的數據類時,可以在某些對象服務操作(例如,更改屬性或關系)過程中調用自定義業務邏輯。此業務邏輯可能包括在更改屬性或調用 SaveChanges 時創建附加驗證或登錄。通過處理由對象服務引發的事件,或者通過定義在更改屬性時調用的自定義分部方法,可以調用自定義業務邏輯。
自定義數據類
有某些情況下,只通過添加方法和屬性來擴展分部類可能無法提供足夠的靈活性。假定現有一個 .NET Framework 應用程序使用 ADO.NET 將數據庫中的數據加載到 CLR 對象中,以供該應用程序使用。這些對象可能包含必須保留在對象層中的有價值的自定義和業務邏輯。這些自定義可能會妨礙您將應用程序遷移為使用實體框架。您可能還希望對實體類型進行更多的控制,而不僅僅是擴展生成的分部類。
將自定義數據類與 EDM 一起使用的建議方式是從 EntityObject 繼承。Entity Framework 提供了一組接口,如果不能從 EntityObject 繼承,或需要比框架更多的獨立性時,可以實現這些接口以將自定義數據類用于 EDM。在使用自定義數據類時,必須向自定義數據類和屬性應用屬性,并且在更改屬性時通知對象上下文。
生成的數據類從 EntityObject 或 ComplexObject 繼承。如果您必須將自定義數據類與 EDM 一起使用,建議的方式是修改您的數據類,以便從這兩個基類繼承。通過這種方式,自定義數據類將受益于 EntityObject 所提供的更改跟蹤和關系管理功能。
在從 EntityObject 和 ComplexObject 繼承時,請記住以下要點:
◆類和屬性名稱必須與 EDM 的概念性架構定義語言 (CSDL) 文件中定義的實體類型和屬性名稱相匹配。如果這些名稱不匹配,您必須更改數據類和屬性的名稱,或者更新 CSDL 和關聯的映射規范文件MSL 中的名稱。有關更多信息,請參見如何:自定義實體數據模型以使用ADO.NET自定義對象(實體框架)。
◆CSDL 中定義的實體類型的每個屬性,都必須在自定義數據類中有一個關聯的屬性。自定義數據類可以具有其他未映射到 CSDL 中定義的屬性的屬性。
◆您必須向自定義數據類和屬性應用屬性。這些屬性在對象和 CSDL 之間提供顯式映射。
◆若要使對象服務能夠跟蹤對ADO.NET自定義對象進行的更改,必須使用 EntityObject 更改報告方法按照特定模式報告這些更改。
◆Entity Framework 工具還生成其他能夠簡化對象編程的類。對自定義數據類使用此代碼很有用。有關更多信息,請參見如何:將對象服務用于自定義對象(實體框架)。
◆在從 EntityObject 繼承時,必須通過從 ComplexObject 繼承來實現復雜類型。
感謝各位的閱讀,以上就是“ADO.NET如何自定義對象”的內容了,經過本文的學習后,相信大家對ADO.NET如何自定義對象這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。