2009-06-17 171 views
2

項目的經驗,我們正在考慮/新ASP.NET項目評估EF。實體框架(.NET 3.5)

請告知,如果你正在使用或已經使用,EF V1的一個項目? 請同時告訴您在網絡或桌面應用程序中使用EF的經歷如何?

謝謝。

回答

3

我們使用EF一箇中等規模的內部項目。這是一個包含業務邏輯和自包含EF層的服務器的n層應用程序。客戶端是一個WPF應用程序(通過WCF連接到服務器)。

有說不完的喜歡的EF,它可以使你的DA層的某些方面非常快寫,但有一點我要說的是,它目前沒有斷開連接的應用很好的支持。如果您的應用程序非常獨立,與數據庫直接相連並始終使用1個數據上下文,則數據上下文管理您的數據對象,適當地從中提取數據並更新數據庫。

只要你嘗試斷開你的客戶在任何形式的n層結構的,雖然事情變得更難。您必須管理從數據上下文斷開連接並重新連接實體,或者必須以某種方式將數據上下文序列化到客戶端。你必須使用多個數據上下文(部分原因是我們無論如何都是無狀態的服務器,但也因爲你試圖爲多個客戶端使用單一的數據上下文而陷入巨大的混亂),而且這一切都變得有點棘手。我們的解決方案的一部分是從較低級別的「數據對象」創建單獨的「業務對象」。然後EF會管理這些數據對象(將它們保存並從數據庫中加載它們),但是我們自己的BLL層將管理業務對象。保存和加載都需要從較高級別的對象轉換到較低級別的對象,反之亦然。

一切的一切事情都工作確定,但事後我要說的是,EF沒有完全準備好嚴重的企業級開發。我聽說在.net 4.0中使用EF的下一個版本對斷開連接和n層應用提供了更好的支持,但是我個人並沒有對此感到厭倦。

+0

是否有替代的ORM工具,你會建議更好地處理斷開狀態? – Merritt 2009-06-23 19:26:49