В чем разница между ISession.SaveOrUpdateCopy () и ISession.Merge ()?

В NHibernate 3.1 ISession.SaveOrUpdateCopy () помечен как устаревший. В документации предлагается вместо этого использовать Merge () . Документация по каждому из них выглядит следующим образом:

SaveOrUpdateCopy (object obj)

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

Merge (object obj)

Скопируйте состояние данного объекта на постоянный объект с тем же идентификатор. Если в настоящее время нет постоянного экземпляра, связанного с сеанс, он будет загружен. Верните постоянный экземпляр. Если данный экземпляр не сохранен, сохраните копию и верните ее как новый постоянный пример. Данный экземпляр не становится связанным с сеансом. Эта операция выполняется каскадом на связанные экземпляры, если ассоциация сопоставлена с cascade = "merge" .
Семантика этого метода определена в JSR-220.

Они выглядят почти идентичными мне, но обязательно должны иметь некоторые тонкости. Если да, то какие?

6
задан Brant Bobby 4 August 2011 в 14:49
поделиться