我有一个包含子项列表的父类。父级和子级映射双向has-many和父级cascade.all都打开。如果我在子列表中修改一个对象,但在父项中没有属性,nHibernate不保存该子项。如果我修改父级的属性,一切都可以保存。这是由设计还是有一个特殊的属性,我需要设置?nHibernate保存一对多
1
A
回答
0
这可能与您将孩子添加到集合中的方式有关。在双向中,您必须在代码中管理关系的两个方面。考虑一下Fluent Nhibernate Getting Started Guide的例子。检查商店实体。
一家商店有许多员工。 Store的员工财产是员工的集合。关系设置为双向。
商店有以下方法
public virtual void AddEmployee(Employee employee)
{
employee.Store = this;
Staff.Add(employee);
}
正如你所看到的,孩子的父母财产需要设置父对象。如果没有这样做,那么Nhibernate将无法理解孩子的父母是谁,如果只修改了孩子并且调用了SaveOrUpdate(父母),则无法自动保存孩子。
你需要做到这两点。
+0
我正在那样做。 – 2010-01-20 23:27:59
0
我想通了。我正在使用各种列表器测试审计。当我连接到IFlushEntityListner时,它导致保存停止工作。 Geez令人沮丧。感谢大家!
相关问题
- 1. 保存孤儿,NHibernate的一对多
- 2. NHibernate一对多映射和保存
- 3. NHibernate多对多保存重复数据
- 4. NHibernate:一对多
- 5. NHibernate一对多
- 6. Nhibernate从1.0.2.0迁移到2.1.2和多对一保存问题
- 7. NHibernate关联保存时没有多对一的编号
- 8. 一对多列表没有被NHibernate保存
- 9. NHibernate保存0到多对一的列而不是空的
- 10. 一对多NHibernate的
- 11. 一对多保存,codeigniter DataMapper
- 12. NHibernate保存对象在一对一的关系
- 13. 一个一对多的NHibernate
- 14. NHibernate的许多一对一
- 15. 保存NHibernate FlushMode
- 16. NHibernate从一对多到一对一
- 17. NHibernate一对一vs 2多对一
- 18. 保存一对多关系的对象
- 19. NHibernate多对多
- 20. NHibernate中的多重保存(2.1)
- 21. NHibernate一对一关系不能正确保存
- 22. 在NHibernate中保存对象IInterceptor
- 23. 流利NHibernate映射 - 保存子对象
- 24. NHibernate保存对象,列为空
- 25. Nhibernate - 从属表保存对象
- 26. Fluent NHibernate获取保存对象的ID
- 27. nhibernate映射,多对一
- 28. NHibernate多对一级联
- 29. NHibernate一对多问题
- 30. NHibernate映射:一对多
您是否将子映射到父映射中,父映射在子映射中还是两者都映射? – hackerhasid 2010-01-20 22:21:13
两者如下: (Parent) HasMany(x => x.Initiatives).KeyColumns.Add(“ProjectId”)。AsBag()。Cascade.SaveUpdate()。LazyLoad()。Inverse(); (Child) 引用(x => x.ParentProject).Column(“ProjectId”)。Cascade.SaveUpdate(); –
2010-01-20 22:40:09
我相信你必须打电话给家长保存以保存孩子。 – snicker 2010-01-20 23:22:09