2013-02-09 44 views
0

當我閱讀使用實體框架(或任何現代ORM)的親和列表時,我很驚訝以下幾點不會出現(自引用) :實體框架作爲數據庫代碼的類型檢查/驗證系統

使用強類型的域實體允許在類型編譯 時間基本上完成所有的 數據庫操作的驗證檢查。這是ADO.NET(不管是使用內聯SQL還是存儲過程)不可能實現的。

對我來說,這是使用ORM的最大優勢之一。在處理基於ADO.NET的應用程序時,我經常遇到的一個問題是來自SQL的運行時錯誤。靜態檢查完全消除了這一點。

任何人都可以詳細說明爲什麼這與許多開發人員沒有多大關係?

+0

我無法詳細闡述我不同意的聲明。此外,這些討論問題,無論有趣,都在這裏脫離主題。 – 2013-02-09 16:01:04

+0

你能否詳細說明你爲什麼不同意?謝謝 – davenewza 2013-02-11 07:00:41

+0

使用ORM有更多的原因。使用ADO.Net有很多原因。什麼讓你覺得_many developers_沒有看到編譯時類型安全性的相關性?這裏討論真的不是一個問題。查看常見問題解答。 – 2013-02-11 08:37:55

回答

0

哦,這太好了。

這也不是免費的。 EF本質上建立在ADO.net之上,它只是使用反射來在強類型類和實際列名之間來回轉換。如果你的記錄集相當小,這很好,但當你開始處理更大的數據集時,這一點非常明顯。 通常,這個額外的延遲時間並不重要,因爲如果比方說數據庫需要兩秒鐘才能將數據拉到頭,那麼額外的毫秒(甚至一秒)會產生多大的差異。但是在某些情況下,速度至關重要,在這些情況下,您幾乎必須使用原始ADO編寫自己的構造。

+0

對不起,我想你完全誤解了我的問題。我明白什麼是EF,我只是想在引用的聲明中有更多的清晰/意見。 – davenewza 2013-02-11 07:10:55