【发布时间】:2011-04-12 12:17:43
【问题描述】:
我的主要实体(帐户)图表如下所示:
帐户
- 经理
- 销售人员
- 交易员
Manager、SalesPerson 和 Trader 实体的类型为 person。现在,在创建主要实体(以及内部实体)时,如果它不存在,我需要创建一个新的 Person。这引入了一个问题,如果同一个(新)人应该与销售人员和交易员相关联,我希望创建的同一个临时实体与两者相关联。但相反,我最终创建了 Person 对象的重复瞬态实例,这会在系统中创建重复项。我怎样才能避免这种情况?
【问题讨论】:
-
您能否提供示例代码来证明您的问题?
-
重复是什么意思?在什么“系统”中,数据库?
-
假设在创建 Account 实体时,我拥有与 SalesPerson 和 Trader 相同的员工,这是我保存 Account 实体时将创建的新员工。当我查询数据库以检查 emp 是否已经存在时,我找不到它。所以我会说 accountObj.SalesPerson = EmployeeFactory.CreateEmployee(employeeId)。在 Trader 的下一步中,我将执行相同的操作,因为 emp 尚未保存。结果,已为 Trader 和 SalesPerson 分配了相同的 emp,但在 db 中,当我保存 accountObj 时,我最终创建了重复记录。我该如何解决这个问题?
标签: .net nhibernate duplicate-data transient