目前我們所接觸到的許多項目開發(fā),大多數(shù)都應用了 ORM 技術(shù)來實現(xiàn)與數(shù)據(jù)庫的交互,ORM 雖然有諸多好處,但是在實際工作中,特別是在大型項目開發(fā)中,容易發(fā)現(xiàn) ORM 存在一些缺點,在復雜場景下,反而容易大大增加開發(fā)的復雜度及犧牲靈活度。使用 ORM 不寫 SQL 而使數(shù)據(jù)庫交互變得簡單易行,是否能夠達到預期效果,要畫一個問號。

主要問題可能存在于以下幾點:

1.大幅度犧牲性能。

2.雖然隱藏了數(shù)據(jù)層面的設(shè)計,但并沒有從根本上降低數(shù)據(jù)訪問復雜度,只是將復雜緯度從一個點(SQL,存儲過程)轉(zhuǎn)移到另一個點(代碼),以EF為例,最終生成的代碼性能與C#書寫有很大關(guān)系,且難以通過成熟的數(shù)據(jù)庫技術(shù)反查性能瓶頸。

3.對于復雜查詢,ORM 力不從心,雖然從技術(shù)角度說實現(xiàn)肯定都能實現(xiàn),但是代價是不值的。

 

有朋友認為 ORM 可以使不懂數(shù)據(jù)庫的開發(fā)人員也能在開發(fā)中輕松實現(xiàn)與數(shù)據(jù)庫的交互,但是,在大型項目中,讓不懂數(shù)據(jù)庫的開發(fā)人員做這塊工作,Are you kidding me?

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設(shè)計培訓,網(wǎng)站建設(shè)培訓學習是年輕人改變自己的最好方式