簡體   English   中英

如何插入/更新部分映射到視圖的實體框架實體?

[英]how to insert/update entity framework entities that are partially mapped to a view?

我有一個帶有“設備”表和一個名為“ EquipmentStatuses”的視圖的數據庫,該數據庫將將“ Equipment”表中的每個條目與另一個表中的某個聚合值相關聯,執行一些復雜的操作,並返回一個帶有EquipmentId和一個簡單的2列視圖計算值。

我已將“設備”表映射到設備實體,並創建了一個額外的標量字段,該標量字段映射到視圖中的計算字段。 當我只是從數據庫中檢索記錄時,一切都很好,但是當我嘗試插入或更新Equipment表時,我從Entity Framework中收到錯誤消息:

Unable to update the EntitySet 'EquipmentStatuses' because it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation.

似乎實體框架試圖在視圖中插入一些東西,但是失敗了,因為我實際上沒有告訴EF如何做到這一點。 但是,視圖中的單個字段不需要更新,因為它是從另一個表自動計算得出的。

有沒有一種方法可以告訴實體框架忽略視圖而只更新設備表,而無需編寫各種樣板化的插入/更新/刪除存儲過程?

我將EF6與SQL Server數據庫一起使用。

您可以從上下文中分離該對象:

dbContext.Entry(EquipmentStatuses).State = EntityState.Detached;

如果這是MVC,則還可以組成視圖模型,將其發送到視圖,然后將其映射回POST上的適當實體。 像Automapper這樣的工具非常有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM