實體框架5/6中的可更新視圖

c# entity-framework-5 entity-framework-6

根據http://technet.microsoft.com/en-us/library/ms187956.aspx ,我有幾個可更新的視圖。

我的所有觀點都遵循上述文章中的規範。我已經在SQL Management Studio中驗證了可以更新,插入和刪除視圖。

我所做的研究使我有了兩個選項來使我的Entity Framework 5/6 Model中的視圖可更新:

  1. 從每個視圖中刪除標記,但是,從數據庫更新上下文時,MyContext.edmx中完成的任何工作都會被覆蓋。這意味著這個解決方案對我的項目來說不太可行。

  2. 為每個視圖添加插入,更新和刪除存儲過程,並在設計器中映射這些過程。我不特別喜歡創建這麼多存儲過程的想法。

是否有任何簡單的方法告訴EF5或EF6可以添加到/更新/刪除的視圖在運行後續“從數據庫更新模型”命令時不會被刪除,而無需為每個輸入方法編寫存儲過程(插入,更新) ,刪除)在每個視圖?

熱門答案

我認為最簡單的方法是更改​​StorageModel中EntitySet的定義,告訴它將其視為一個表,而不是數據庫視圖。

查看XML定義,它所說的位置

<EntitySet Name="Products" store:Type="Views" ..

你改變它

<EntitySet Name="Products" store:Type="Views" ..

(注意“產品”只是一個例子)這應該在你的.edmx文件中。
參見第44頁,Lerman,“編程實體框架”,第2版。

希望這可以幫助。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因