2011-11-08 52 views
0

我們目前有一個完全由ASP.NET和MVC手動編寫的解決方案。遷移到實體框架自定義ORM

DAL目前有很多醜陋的黑客攻擊和解決方法,而不是擴展這些黑客,我設法說服我們需要遷移到某種ORM。

對於團隊中的實體框架經驗,我們已決定使用實體框架,但是,對於任何可能有此經驗的人員,我都有一個遷移問題。

如果我們要將Entity-by-Entity遷移到一切都遷移到EF之後,會不會有任何性能問題?我們可能面臨哪些可能的障礙(除了必須重寫大部分BL的明顯情況)?實際上是否應該通過實體來實現(就創建模型而言),還是存在創建實體模型和逐位更改BL的問題。

我似乎無法找到關於這個問題的任何文檔.. MSDN似乎只是說「耶實體框架是好的,所以遷移到它是好的。」。

任何意見,將不勝感激。

PS:我沒有這樣說的:Migrating from 'native' OODBMS to ORM (Entity Framework/SQL Server)

然而,我們已經決定去與EF,而不是NHibernate的,它並不能證明是非常有用的。

回答

2

這是個好問題,我從我的預期中得到了答案。這是關於'耶實體框架是好的,所以遷移到它是好的'

現在我們的團隊正在研究大(非常大)的人力資源SaaS解決方案。從一開始我們決定使用:

  • EF 4.1
  • 的MySQL(這是從客戶要求)
  • .NET MVC 3

然後時間的推移(3個星期附近),我們注意到接下來關於EF:在我們的系統中,如果我們需要將來很難支持系統,那麼使用Model首先是不適用和有用的,例如,改變一點點db結構或者在表格之間建立新的關係。

在這種情況下,我們轉移到EF Code First(對於所有數據庫請求使用一個通用存儲庫)。這是導致它是如此新技術的風險,並且沒有關於大型解決方案的最佳實踐或使用案例。因此,我們收到了很多其他的頭痛:

此外,我們試圖NHibernate的只是比較性能固定。 NHiberanate具有相同的:)

一般信息,你應該知道關於EF:

  • 如果你想武官第三部分緩存準備好解決方法。 NHibernate的有這個
  • 原生集成有EF和NH性能之間沒有什麼大的不同,但新罕布什爾州有大量的手工工作與測繪

希望我的回答你的追問和信息是與您有關。

ps>對不起,我的英語:)

+0

+1;我已經看到了所有這些問題,而且你指出它們真是太棒了。在我們的例子中,我們試圖將實體序列化爲Telerik UI控件。他們使用JsonSerializer,它也不能處理實體序列化(我們通過做一個奇怪的包裝來修復它,當檢測到對象週期時它會截斷序列化)。 –

+0

有一個插件爲NHibernate提供了流暢的基於語法代碼的映射支持:http://fluentnhibernate.org/。雖然如你所說,你基本上已經把它與EF相提並論,因爲沒有性能差異。 –

+0

順便說一句,'ORM提出了很多數據庫請求(導致表之間有很多關係)。通過.Include修復()'我不認爲是由代碼優先引起的。我也看到了模型優先的這個問題。但我同意你的觀點,即模型首先的支持確實還不夠流暢。它將在下一個VS版本(Denali)中發佈,但目前還沒有。 –