2016-11-09 57 views
4

我正在閱讀一本書,它說:「如果您將使用ADO.NET創建自己的數據訪問層以訪問您的數據庫,那麼對數據架構是否存在的影響最小。 O/RM,您的靈活性將受到您使用的工具的限制「。 ADO.NET和其他ORM之間的主要區別是什麼?orm和ADO.net有什麼區別?

+0

和MS奇怪爲什麼人們不信任的認證。該語句意味着即使數據庫不存在,您也可以在代碼中編寫原始SQL查詢。這只是一個無法檢查或驗證的字符串。如果任何人這樣工作,他不應該被允許參加該考試 –

+0

鏈接到有罪[書](https://ptgmedia.pearsoncmg.com/images/9780735677227/samplepages/9780735677227.pdf)。考試參考70-486開發ASP.NET MVC 4 Web應用程序 –

回答

4

ADO.NET提供一致的訪問數據源,如SQL Server 和XML,以及通過OLE DB和ODBC暴露的數據源。 數據共享的消費者應用程序可以使用ADO.NET連接到這些 數據源和檢索,處理和更新他們 包含的數據。

ADO.NET將數據訪問和數據操作分離爲離散的 組件,可以單獨使用或串聯使用。 ADO.NET包含用於連接到數據庫,執行 命令並檢索結果的.NET Framework數據提供程序。這些結果要麼直接處理 ,要麼置於ADO.NET DataSet對象中,以便以特定方式向用戶展示 ,與來自多個 源的數據結合使用,或者在層之間傳遞。 DataSet對象也可以獨立於.NET Framework數據提供程序使用,以管理數據本地 到應用程序或源自XML。

ADO.NET是允許您連接到數據庫並使用SQL連接,命令,參數對其進行修改的層。 ADO.NET MSDN

對象關係映射(ORM,O/RM,和O/R映射工具)在 計算機科學是在面向對象的編程語言 轉換不兼容的類型的系統之間的數據 一種編程技術。實際上,這創建了一個「虛擬對象數據庫」,可以在編程語言中使用該虛擬對象數據庫。有跡象表明,執行的對象 - 關係映射 都提供免費 和商業軟件包,雖然有些程序員選擇構建自己的ORM 工具。

Entity FrameworkNHiberante是ORM。這意味着你不需要通過SQL連接,命令,參數來操作--ORM工具可以幫你實現,它允許以OOP方式映射數據庫結構:你可以使用C#中的對象添加,讀取,更新和刪除數據庫中的記錄。您只需將您的對象正確映射到數據庫。 Entity Framework建立在ADO.NET上,它使用ADO.NET內部。 SQL語句由ORM生成。 ORM

通常,不使用ORM訪問數據庫的速度會更快,但您應該提供更多的代碼行。如果你想以OOP方式操作你的數據庫並編寫更多可讀代碼,你應該選擇ORM。這取決於你的目的選擇什麼。

有微型ORM(Dapper,BLToolkit),它允許您編寫SQL查詢和映射參數到對象屬性。一般來說,微型ORM比完整ORM具有更好的性能,但ADO.NET仍然更快。

此外,還有StackOverflow上的一些問題和答案:EF vs ADO.NET