2011-08-31 35 views
0

也許我想念這裏的東西,但我不這麼認爲。實體框架:如何添加到SQL Server視圖?

我有一個實體模型,它擁有SQL Server視圖以及。當我和我的實體一起工作時,我注意到像下面的方法;

HubEntities _entities = new HubEntities(); 
_entities.vw_AccommPropertiesFullWeb.AddObject(... 

vw_AccommPropertiesFullWeb這裏是一個視圖。

它怎麼可能給一個新的視圖添加到視圖?英孚人是否故意這樣做,或者這是錯誤配置的東西?

回答

2

如果導入SQL視圖以它始終表現爲DefiningQuery這是定義只讀模式。只有這樣,才能使其可寫正在執行存儲過程,並將它們映射到實體類型的InsertUpdateDelete操作。

解決方法是在方式,EF會認爲它是一個表映射視圖。它要求:

  • EDMX文件的手動修改,除非你買一些額外的工具,你也永遠無法使用更新的數據庫再次=你要保持EDMX手動
  • 您的視圖必須是可更新 - 與EF使用時,通常它要麼意味着你的觀點必須有INSTEAD OF觸發器,修改操作或無法使用連接,工會,計算列,聚合或其他任何東西,除非這些行動造成列 - 它必須遵循由數據庫服務器定義的一些規則標記爲在EF中計算(數據庫視圖允許僅從基表插入和更新列)。