2010-12-13 3 views
1

Я создал веб-приложение ASP.NET MVC, которое использует Entity Framework. Чтобы предоставить представление с правильными данными, я создал специальные классы представления, которые представляют части классов модели.Как обновить объект в Entity-Framework?

У меня есть 2 вопроса об этом.

  1. Как наилучшим образом преобразовать данные из объекта вида в объект модели? На данный момент я делаю это вручную в таких методах, как ViewClass.ToModel() и ViewClass.FromModel (ModelClass). Однако, если модель обновлена, это преобразование, возможно, потребуется обновить. Нужно ли мне это делать вручную?

  2. При преобразовании объекта вида в модельный объект может случиться, что некоторые из свойств не установлены, поэтому значение будет равно null или string.empty. Проблема заключается в том, что при запуске обновления (в сущности) эти пустые (не заданные) свойства будут перезаписывать реальные данные. Как я должен справиться с этим?

Одним из решений может быть, чтобы получить modelobject из базы данных, а затем только transfare в peroperties, которые были установлены в modelobject? Проблема с этим может заключаться в том, что значение свойства может иметь значение null, откуда я могу узнать, установлено это свойство или нет? Или мне нужно писать специальные методы обновления в зависимости от действия?

BestRegards

ответ

5

Как лучше конвертировать данные из объекта представления в модели объекта?

AutoMapper

При преобразовании viewobject в modelobject может случиться так, что некоторые из свойств не установлены, поэтому значение будет нулевым или String.Empty. Проблема заключается в том, что при запуске обновления (в сущности) эти пустые (не заданные) свойства будут перезаписывать реальные данные. Как я должен справиться с этим ?

Если уровень доступа к данным (независимо от того, какой технологии он использует, Entity Framework, NHibernate, ...) не не способен обрабатывать этот сценарий может возникнуть необходимость иметь специально адаптированные методы обновления, которые работают в тех случаях, ,

+0

+1 Для AutoMapper. – TheCloudlessSky

+0

Я рассмотрю AutoMapper. Итак, если я создал объект в представлении и должен обновить базу данных, я должен сначала получить объект из базы данных, обновить этот объект db данными от объекта, находящегося в поле зрения, а затем сохранить? В Entity-Framework нет магии для этого? – Banshee

+1

Я замечаю, что есть UpdateModel для MVC, почему я должен использовать AutoMapper вместо UpdateModel в MVC? – Banshee

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