【问题标题】:How to clone objects in NHibernate?如何在 NHibernate 中克隆对象?
【发布时间】:2010-03-11 17:19:07
【问题描述】:

如何在NHibernate中实现对象(实体)克隆?每个实体类都有这样的属性:

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

另外,实体类继承BaseObject。 我尝试使用 XML 序列化来实现解决方案,但是无法序列化接口。

感谢您的回答!

【问题讨论】:

    标签: c# .net nhibernate serialization


    【解决方案1】:

    AutoMapper http://automapper.codeplex.com/ 解决了我的问题。 例如,可以通过以下方式克隆业务对象:

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

    【讨论】:

    • 您将需要使用 Mapper.CreateMap&lt;Transaction, Transaction&gt;().ForMember(d =&gt; d.Id, o =&gt; o.Ignore()); 排除 Id 属性,并使用以下内容手动复制 IList 属性:newtransact.Clubs = this.Clubs.Select(item =&gt; item.Clone()).ToList(); - 请参阅:stackoverflow.com/questions/3396808
    • 谢谢。它为我省去了一些麻烦。
    【解决方案2】:

    【讨论】:

      【解决方案3】:

      我不知道您的领域或要求,也不知道我是否误解了您的需求,但是实现 ICloneable interface 并编写代码来克隆您的对象应该可以工作。

      请记住,您必须在克隆时键入 cast。

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

      【讨论】:

      • 请告诉我哪里做错了,以便我自己学习! =)我在问题中有什么误解吗?谢谢!
      猜你喜欢
      • 2011-09-19
      • 2018-08-09
      • 1970-01-01
      • 2010-11-08
      • 2012-11-17
      • 2010-09-07
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多