【发布时间】:2012-03-25 18:12:13
【问题描述】:
我有以下代码:
var rootFolder = new KnowledgeFolder { Archived = true, Name = path.First()};
this._folderRepository.Save(rootFolder); // this goes to the db
然后稍后:(不相关的代码不在这里)
var child = new KnowledgeFolder { Name = entry, Archived = true };
rootFolder.Children.Add(child);
//////////
this._folderRepository.FlushSession();
rootFolder 已正确保存到数据库,但我稍后添加到 Children 的其他项目不会保存。为什么?我知道如果之前从数据库下载了根文件夹,这将起作用。为什么 NHibernate 不够聪明,无法检查对象图?
//编辑
使用 fluent api 完成映射,如下所示:
mapping.HasManyBidirectional<KnowledgeFolder, KnowledgeFolder>(g => g.Children, p => p.Parent);
【问题讨论】:
-
你能展示你对孩子们的映射吗? children 集合必须有 cascade ="all" 或类似的定义
标签: nhibernate