2015-08-07 3 views
1

У меня есть база данных с таблицей «Оборудование» и видом, называемой «EquipmentStatuses», которая делает что-то сложное, чтобы связать каждую запись в таблице «Оборудование» с каким-то агрегированным значением из другой таблицы и возвращает простое представление из двух столбцов с помощью EquipmentId и расчетное значение.Как вставлять/обновлять сущности фреймворка, частично отображаемые в виде?

Я сопоставил таблицу «Оборудование» с объектом «Оборудование» и создал одно дополнительное скалярное поле, которое отображается в вычисленное поле из представления. Все это прекрасно работает, когда я просто извлечение записей из базы данных, но при попытке вставить или обновить таблицу оборудования я получаю сообщение об ошибке от 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.

ответ

1

Вы можете отделить этот объект из контекста:

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

Если это MVC можно также составить ViewModels, послать их к виду, а затем сопоставить их обратно к соответствующим лицам на POST. Инструмент, подобный Automapper, отлично подходит для этого.

+0

Дело в том, что представление не отображается на отдельный объект. Я мог бы это сделать, конечно, но это более элегантно, если бы это было необязательно. – jkokorian

+0

У вас возникнут проблемы, если вы измените свои объекты непосредственно в представлениях. http://stevemichelotti.com/aspnet-mvc-view-model-patterns/ –

+0

Я пошел на более сложное, но в конечном итоге лучшее решение для написания хранимых процедур ... – jkokorian

Смежные вопросы