Присоединение объекта к контексту EF 4 из представления MVC? - PullRequest
2 голосов
/ 10 марта 2011

Я не уверен, имеет ли это смысл, но вот пример.

У меня есть объект Category, который мой Сервис передает Контроллеру, который использует AutoMapper для создания CategoryViewModel. Отдай это на вид, подай клиенту.

Теперь, когда это будет отправлено обратно, AutoMapper создает категорию из отправленной модели, и я передаю ее в службу, которая передает ее в хранилище для сохранения в базе данных.

Мой вопрос: как правильно это сделать? Я предполагаю, что объект является отдельным объектом при публикации, и мне нужно присоединить его к контексту, пометить его как грязный и сохранить изменения?

Ответы [ 2 ]

3 голосов
/ 10 марта 2011

В основном два способа обновления сущности:

  1. Прикрепить сущность к контексту, пометить ее как измененную с помощью ObjectStateManager.ChangeObjectState Method, вызвать ObjectContext.SaveChanges Method
  2. Загрузитьисходный объект из БД, примените изменения к исходному, используя ObjectContext.ApplyCurrentValues<TEntity> Method, позвоните ObjectContext.SaveChanges Method

У каждого из них есть свои плюсы и минусы.Например, первый из них не совершает обхода, чтобы получить исходную сущность, но не обращается к параллелизму, а также пытается обновить каждое свойство сущности, в то время как второй работает лучше всего при использовании оптимистичного параллелизма, обновляет только измененные свойства, нодействительно делает дополнительную поездку в Db, чтобы получить оригинальную сущность.

0 голосов
/ 10 марта 2011

«Я предполагаю, что объект является отдельным объектом при публикации, и мне нужно присоединить его к контексту, пометить его как грязный и сохранить изменения?»

Да.

Любая из ссылок на этой странице должна помочь:

http://www.google.com/search?rlz=1C1CHFX_enUS410US410&sourceid=chrome&ie=UTF-8&q=working+with+dicsonnected+entities+entity+framework

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...