2009-12-18 61 views

回答

5

您可能需要在您正在討論的版本前面添加這些問題的前綴。在.NET 4.0的即將發佈的版本中,已經修復了大量的煩惱。

這裏是SQL 2K8使用一個體面的大小與數據庫的第一個版本的工作約6個月後,我會說什麼(40+表,幾個表有近100萬行,交通體面量)

  • 缺少外鍵屬性。意思是如果我想知道或僅使用相關表的ID,我必須加載實際的實體。 (固定在下一個版本)
  • 完全缺乏一個簡單的外部聯接像linq到SQL有使用時DefaultIfEmpty。在下一個版本中修復。
  • 生成的SQL小於最佳這似乎是固定在下一版本以及
  • 很難從你的代碼抽象爲可測試性併爲多層次的環境使用,但它可以做到。這也可以歸類爲也已經解決的POCO問題。

還有更多,但這些是我的第一。

總的來說,我會再次使用它,但如果你是從頭開始,請保存自己的一些痛苦和等待最新版本或開始使用測試版,如果可以的話。

2

您可能會找到walkthroughs for Entity Framework 4.0 useful。所討論的所有新功能都是來自當前發佈的版本的令人討厭的排放。

我發現新的TDD /可測試性功能和T4代碼生成功能特別有趣。

-1

我在EF4測試版中發現POCO對象和模型優先設計非常性感。

+1

我想你認爲性感與我的不同...... :)我會說這是令人興奮的,但不是在「等待我的cialis在綠色的田野坐在浴缸中坐着時踢有點方法「 – 2009-12-18 22:35:30

1

關於EF1:

  • 生成的SQL是可怕的。它的倍數加起來,比它大10倍。我有一個簡單的查詢,但有很多連接,並通過EF生成此查詢(不執行)顯着減慢我的應用程序。不,我無法使用預編譯查詢。我用視圖來應付它。 SQL Profiler很有幫助。
  • 視圖中的主鍵無法正確識別。導入視圖或執行模式刷新時,必須手動更改edmx文件。
  • 您可以用圖形方式從數據庫設計實體,從數據庫更新模型,但它並不總是很好,特別是當您更改字段類型或外鍵時。
  • 你不能更新模型中的一個表,總是必須從數據庫更新整個模型。
  • 你不能爲你的實體定義基類,它已經被定義(EntityObject)。您可以使用接口,因爲類被定義爲部分。
  • 沒有POCO,實體類與框架強連接。
  • 您可以通過EntityReference.EntityKey設置外鍵,但是當您擁有EntityCollection時,準備往返數據庫。或者我錯過了什麼?
相關問題