Сохранить объекты, полученные от службы WCF - PullRequest
1 голос
/ 03 октября 2009

В моем приложении мне нужно сохранить с помощью сущностей NHibernate, полученных от службы WCF.

В настоящее время я использую для этой цели метод сеанса SaveOrUpdate.

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

Пример:

public class Product
{
    public virtual string Name {get;set;}
    public virtual IList<Stores> Stores {get;set;} <--- Stores is empty, but should not be cleared in databse.
}

Спасибо, Оксана.

Ответы [ 2 ]

1 голос
/ 03 октября 2009

Насколько я понимаю, вы хотите обновить некоторые свойства объекта, если он уже существует, и не трогать других, это правильно?

Ну, в принципе, в таком случае вам нужно сделать следующее:

  • установить сессию NHiberate
  • на основе некоторого идентификатора, загрузить текущее состояние объекта из базы данных
  • обновить свойства, которые вы хотите обновить, от объекта, полученного в вашем сервисном вызове
  • сохранить измененный объект обратно

При таком подходе вы будете обновлять только те свойства, которые вам нужны, а все остальное остается в покое.

Это похоже на подход, с которым вы можете работать?

Марк

1 голос
/ 03 октября 2009

Я не уверен, что понял вопрос. Если вы новичок в NHibernate, взгляните на документацию с термином cascade. Это определяет, что сохраняется, когда объект, содержащий другие, должен быть сохранен.

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