如何實現在NHibernate中克隆的對象(實體)?每個實體類都具有以下屬性:如何在NHibernate中克隆對象?
public virtual IList<Club> Clubs { get; set; }
此外,實體類繼承BaseObject。 我試圖使用XML序列化來實現解決方案,但不可能對接口進行序列化。
謝謝你的回答!
如何實現在NHibernate中克隆的對象(實體)?每個實體類都具有以下屬性:如何在NHibernate中克隆對象?
public virtual IList<Club> Clubs { get; set; }
此外,實體類繼承BaseObject。 我試圖使用XML序列化來實現解決方案,但不可能對接口進行序列化。
謝謝你的回答!
AutoMapper http://automapper.codeplex.com/解決了我的問題。 例如,它可以克隆一個業務對象在未來的方式:
Mapper.CreateMap<Transaction, Transaction>();
var newtransact = new Transaction();
Mapper.Map(transact, newtransact);
我不知道您的域名或要求,也不知道我是否誤解您的需求,但實施ICloneable interface並編寫克隆對象的代碼應該可行。
請記住,您必須在克隆時鍵入強制轉換。
ClonedObject clonedObjectinstance = (ClonedObject)initialEntityInstance.Clone();
請告訴我在哪裏,我聽錯了,這樣我可以自己學習! =)在這個問題中有什麼我被誤解的嗎?謝謝! – 2010-03-11 18:52:59
你需要使用'Mapper.CreateMap()。ForMember(d => d.Id,o => o.Ignore())'來排除Id屬性,並且使用類似的方法手動複製IList屬性:'newtransact.Clubs = this.Clubs.Select(item => item.Clone())。ToList();' - 參見:http://stackoverflow.com/questions/3396808/ –
2010-08-03 15:56:52
謝謝你。它爲我節省了一些頭痛。 – Nick 2013-06-18 19:11:24