2010-02-24 5 views
-1

Я новичок в EF, и я использую метод asp.net mvc databind для обновления своих моделей «tryupdatemodel», теперь мне нужно обновить сущность из службы слой, поскольку TryUpdateModel - это метод asp.net mvc, который я не могу использовать на уровне служб.Entity framework обновляет существующий объект без ASP.NETMVC TryUpdateModel

Что мне нужно сделать, чтобы обновить данные объекта без использования этого метода?

Я использую репозитории.

ответ

0

Автоматического способа для этого не требуется, вы должны загрузить объект из базы данных и самостоятельно обновить свойства.

+0

Что это имеет общего с его вопросом? – LukLed

+0

Фактически у него есть, я использую вспомогательный метод для обновления данных без необходимости выполнять вызов базы данных. Вам просто нужно привязать объект к контексту (с помощью метода atta EF), тогда вы генерируете ключ сущности для объекта и наконец, пометить все свойства как SetModifiedProperty с помощью метода foreach. Тогда вы можете сэкономить и Воала, это сделано. Вы просто вызываете метод передачи объекта и объекта. Если у кого-то есть лучший подход, пожалуйста, скажите мне;) Спасибо « – Rick

+0

@Rick: делать это вручную всегда возможно, но мы говорим о том, чтобы не делать это так. И есть способы сделать это, поэтому этот ответ неверен. – LukLed

1

Не используйте его в сервисном слое. Вы можете разместить аналогичный код в контроллере:

var entity = Service.Get(id); //get updated entity 
TryUpdateModel(entity); 
if (ModelState.IsValid) 
    Service.Save(entity); //here you can save to database and perform additional validation 
+0

Ну, я не могу сделать это в контролерах, так как я использую WCF и выполняю служебные вызовы для обновления данных. – Rick

+0

Я не знаю, как именно ваши звонки сделаны, и мои навыки WCF посредственны, поэтому, пожалуйста, предоставьте некоторые детали , – LukLed

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