我有一個包含子項列表的父類。父級和子級映射雙向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. Fluent NHibernate多對多不保存
- 5. NHibernate多對多保存重複數據
- 6. NHibernate保存對象
- 7. 流利NHibernate的一對一保存
- 8. NHibernate只保存對象的一部分
- 9. NHibernate:一對多
- 10. NHibernate一對多
- 11. Nhibernate從1.0.2.0遷移到2.1.2和多對一保存問題
- 12. NHibernate保存0到多對一的列而不是空的
- 13. NHibernate關聯保存時沒有多對一的編號
- 14. 一對多列表沒有被NHibernate保存
- 15. 一對多NHibernate的
- 16. NHibernate保存對象在一對一的關係
- 17. SQLite保存一對多
- 18. 一對多保存,codeigniter DataMapper
- 19. Nhibernate多對多橋表保留爲空
- 20. 一個一對多的NHibernate
- 21. NHibernate的許多一對一
- 22. 保存NHibernate FlushMode
- 23. NHibernate一對一vs 2多對一
- 24. NHibernate從一對多到一對一
- 25. NHibernate多對多
- 26. NHibernate中的多重保存(2.1)
- 27. Doctrine2保存多對一對象
- 28. 保存一對多關係的對象
- 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