2010-07-03 74 views
11

我想知道您使用的orm框架的最佳功能和最常見的功能?什麼是您使用的ORM框架的最佳功能

您選擇使用框架的原因是什麼?

我只是想比較他們,並想知道是否有任何優勢比其他。 (這一切都很好用谷歌搜索,但你不能擊敗第一手用戶體驗!)

具體而言,我正在尋找一個.Net框架,但仍然對其他語言ORM /功能好奇。

在此先感謝!

回答

4

我們剛剛經歷了在Entity Framework和NHibernate之間進行決策的過程。儘管我最初的傾向是傾向於NHibernate,但考慮到微軟在過去幾年中實際上堅持使用某種技術的記錄並不像以前那麼優秀(例如:Linq To SQL,在版本1上死了,或者更近的一個例子MS決定拋棄ASP.NET Ajax Library客戶端模板,檢查this),我們仍然決定使用Entity Framework。

我們選擇它的原因如下:

  1. 我們是微軟唯一的店,所以它與我們現有的工具集整合好。
  2. 我們喜歡它在Visual Studio 2010中具有內置建模功能的事實。
  3. 我們喜歡能夠將數據庫模式逆向工程化爲實體數據模型的能力(這非常酷) 。
  4. 我們喜歡這樣一個事實,即我們需要的所有東西幾乎都是開箱即用的,與NHibernate不同的是,我們不得不使用不同的工具來進行可視化建模,映射文件有時可能會很痛苦)以及它沒有與Visual Studio很好地集成。

是否與實體框架一起是正確的選擇仍有待觀察。微軟總有可能將另一個「Linq To SQL」拉回來,並說:「嘿,我們拋棄了Entity Framework,對此感到遺憾,你應該已經用NHibernate了」。但是我們認爲,既然VS 2010現在已經在2.0了,至少有一個很可能會在幾年內出現。

因此,即使我們喜歡NHibernate的成功記錄比Entity Framework好得多,我們使用Entity Framework也是出於上述原因。

我認爲你只需要看看每個工具的優缺點,檢查所有選項,並儘量做出最佳決策。

+0

雖然這始終是可能的,我認爲這是不太可能,微軟將拉動EF插頭(年)。他們大量投資於EF。 – Steven 2010-07-03 21:31:35

+0

@Steven - 時間會告訴:),但我同意並且確實希望我們都是對的。 – dcp 2010-07-03 22:10:04

+0

可以在數據庫模式逆向工程場景中使用NHibernate。 – 2010-07-04 08:47:09

3

我使用Apache的empire-db

主要原因是我擺脫了用於定義數據庫方案的XML或註釋。我真的很討厭把編碼複雜性轉移到需要處理數以萬億計的xml配置文件的配置上,更糟糕的是,使用註釋來分配配置。

+0

我相信流利NHibernate或代碼第一個實體框架4,例如,將是.NET的等價物。 – 2010-07-04 08:49:27

4

我想知道你使用的orm框架的最佳特性是什麼,以及你發現自己最常用的功能是什麼?

我寫了我自己的ORM。其特點包括:爲每個表

  • 機器生成的代碼,基於抽象表定義

  • 庫/框架,它作用於表定義和運行時數據,以實現ueful功能,如:

    • 創建表(或更新表定義)
    • CRUD
    • 觸發存儲procedu這創造了歷史記錄時,表的內容發生了變化
    • 支持樹狀數據(使用嵌套組)
    • 轉化應用類型(C#類的實例),以SQL數據記錄,反之亦然
資源

您選擇使用框架的原因是什麼?

我不想使用現有的ORM,因爲我擔心我可能遲早會發現它沒有實現我想要的某些功能,然後我覺得很難添加該功能。

我想使用ORM,因爲我不想爲每個單獨的表編寫和維護代碼。

+3

http://staynalive.com/files/2010/03/wheel.jpeg – 2010-07-06 16:03:56

3

我寫Object Data Blocks提供以下突出的特點

  • 使用.NET類來描述DB模式 - 無映射文件
  • 創建存儲的特效全部DB訪問
  • 兩個類和查詢的支持繼承
  • 針對DBA的自動部署或sql腳本生成

它最好的總結爲一個對象持久化風格的ORM。

2

我寫過我的ORM,因爲它可以在設備上使用.NET Compact Framework,也可以在不使用重新編譯的情況下使用完整的.NET Framework。

您選擇使用 框架的原因是什麼?

  • 它不從類需要從指定的基本類型繼承或實現任何種類的接口。

  • 它支持在.NET Compact Framework中未提供的嵌套事務處理範圍。

  • 它允許我創建具有域模型的數據訪問層,既可以在設備上,也可以在桌面或Web應用程序中使用,無需交叉編譯或複製。

2

我想知道什麼是最好的功能(S)使用ORM框架的 什麼 功能,你發現自己使用最?

我會說Linq支持是我的殺手級ORM功能。現在,編寫針對數據庫的Linq查詢需要一個ORM。在我的查詢中,Linq給我編譯時間對數據庫的靜態類型檢查,現在在一些代碼和數據庫不同步的情況下,給我編譯器錯誤。我傾向於處理大量變化的數據庫(敏捷),並與數據庫架構更新可能來自任何團隊成員的開發團隊合作。

您選擇使用 框架的原因是什麼?

有很多關於這個主題的其他問題和解答:一對夫婦中

NHibernate, Entity Framework, active records or linq2sql

相關問題