2011-06-06 49 views
1

我正在爲大型SQL Server數據庫(2008 R2)創建服務層,該數據庫當前是具有強類型數據集的winforms POS應用程序的後端。現有企業數據庫的Enity Framework

我想WCF是要走的路,乍看之下看起來EF 4是一個不錯的選擇,但現在我懷疑了。這裏是我發現的:

  1. 存儲過程映射不是那麼好。我有數百個我想要重複使用的存儲過程。他們中的大多數不會返回一個「實體」,因此存儲的特效將不得不映射到複雜類型。許多proc使用動態SQL或臨時表,所以EF無法弄清楚需要克服的複雜類型。許多特效返回多個結果集。我讀過EF擴展有一種方法來映射存儲過程與多個結果集,但僅限於實體,所以這並沒有幫助我。
  2. 大型模型是一個問題。似乎沒有一種處理大型實體模型的好方法。創建較小模型的解決方法並不理想,並且拆分模型失去了設計支持,我錯過了什麼?
  3. EF映射只能到目前爲止。我想要重複使用的存儲過程將來自多個表的信息返回到結果集中。似乎沒有辦法將這些結果映射到實體,我錯了嗎?我已閱讀將2個表的結果合併到1個實體中的情況,但只有當這些表具有相同的主鍵時纔有效。

在大規模的現有數據庫中是否使用EF?如果不是,你會推薦什麼?

回答

0

我已經在大型數據庫上使用了EF,但是正如你所說的那樣,對於SPs的支持並不是很好。這並不是EF本身的失敗 - 一般來說,ORM在相同的原則下工作並具有相同的「限制」。

如果您有很多SP並將它們映射到數據集,即使沒有SP,也不必再引用數據集並通過您的系統引用域模型類型,所以您需要做很多工作無論如何,需要有一些方法將你的SP映射到你的域模型。