避免在nhibernate中出现重复的瞬态实例

时间:2010-09-15 05:41:46

标签: .net nhibernate duplicate-data transient

我的主要实体(帐户)图如下所示:

帐户

       
  • 管理器    
  • 业务员    
  • 交易

Manager,SalesPerson和Trader实体属于person类型。现在,在创建主实体(以及内部实体)时,我需要创建一个新的Person,如果它还不存在的话。这引入了一个问题,如果假设相同的(新)人与SalesPerson和Trader相关联,我希望创建的同一个瞬态实体与两者相关联。但相反,我最终创建了Person对象的重复瞬态实例,这会在系统中创建重复项。我怎么能避免这个?

1 个答案:

答案 0 :(得分:0)

创建后,可以将Person对象保存到数据库吗?然后它将在数据库中,当你检查它时,它就在那里。如果您使用的是本机主键,则在调用Save时,nHibernate会将其保存到数据库中。如果您没有使用本机主键,则必须调用flush。

或者,跟踪最近保存的人员,并先检查那里。