2010-03-11 2 views
11

Как реализовать клонирование объектов (объектов) в NHibernate? Каждый класс сущности обладает такими свойствами:Как клонировать объекты в NHibernate?

public virtual IList<Club> Clubs { get; set; } 

Кроме того, класс сущности наследует объект BaseObject. Я попытался реализовать решение, используя сериализацию XML, но сериализовать интерфейсы невозможно.

Благодарим за ответы!

ответ

14

AutoMapper http://automapper.codeplex.com/ решает проблему. Например, можно клонировать бизнес-объект в следующем виде:

Mapper.CreateMap<Transaction, Transaction>(); 
var newtransact = new Transaction(); 
Mapper.Map(transact, newtransact); 
+3

Вы хотите исключить свойства идентификатора, используя «Mapper.CreateMap (). ForMember (d => d.Id, o => o.Ignore());' и вручную скопируйте свойства IList, используя что-то вроде : 'newtransact.Clubs = this.Clubs.Select (item => item.Clone()). ToList();' - см .: http://stackoverflow.com/questions/3396808/ –

+0

Спасибо за это. Это избавило меня от некоторых головных болей. – Nick

0

Я не знаю о вашем домене или требованиях, а также не понимаю ли я ваши потребности, но реализация ICloneable interface и запись кода для клонирования вашего объекта должны работать.

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

ClonedObject clonedObjectinstance = (ClonedObject)initialEntityInstance.Clone(); 
+0

Пожалуйста, скажите мне, где я получил это неправильно, так что я могу сам научиться! =) Есть ли что-то, что я неправильно понял в вопросе? Благодаря! –

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