2012-03-29 31 views
0

我們可能正在考慮切換我們的表格,以便在EF 4.3.1中查看。重構實體框架代碼使用視圖而不是表?

我們首先通過edmx文件使用db,因此它會生成我們的實體和dbcontext。

有沒有人有任何提示重新映射我們的實體從表到視圖?

這是否容易發生災難?我們在過去通過設計人員更新edmx文件時遇到了問題,其中底層更改未在代碼的深處反映出來,我們最終丟失了列。

或者意見的行爲與EF世界中的表格非常相似?

回答

4

Designer以完全不同的方式處理視圖 - 首先,EF通過設計器使用的所有視圖都是隻讀的,除非映射存儲過程或自定義SQL命令以插入,更新和刪除要修改的每個實體的操作。

一般來說,如果你有更新視圖,你可以簡單地修改EDMX的SSDL部分,騙取其假裝的觀點實際上是一個表,但是這會帶來兩個後果:

  • 您必須修改EDMX直接作爲XML
  • 您不能使用更新從數據庫更多,因爲它總是刪除整個SSDL部分,並創建一個新的沒有您的更改=您必須手動維護您的EDMX或購買一些VS的擴展,這將允許您只更新選定的表。
+0

偉大的答案一如既往感謝@拉迪斯拉夫。關於使用視圖的潛在問題有趣的東西,我想我可能會遇到一個擴展,但如果它適用於4.1+和質量保證在圖庫中被打破,可能會遇到延伸。但希望它可以幫助:http://visualstudiogallery.msdn.microsoft.com/d9b76b5d-d45c-4e79-8d28-31444be582de再次感謝。 – 2012-03-29 11:32:21