将项目添加到HasMany集合时,NHibernate第一级缓存

时间:2010-11-17 18:13:05

标签: c# nhibernate caching fluent-nhibernate

我通过在NHibernate中的另一个对象上添加一个HasMany集合来创建一个新对象。

当我直接在同一个会话中查询该对象时,它为null。如何将子对象存储在第一级缓存中的HasMany集合中。我遇到的问题是我需要获取对象并在提交所有内容之前对其进行一些操作。

 HasMany(x => x.BehavioralEvents)
     .AsBag()
     .Cascade.SaveUpdate()
     .Inverse()
     .KeyColumn("StudentCaseId")
     .LazyLoad();

BehavioralEvents是一个IList,我需要在同一个会话中直接查询它:

session.Get<BehavioralEvent>(id);

1 个答案:

答案 0 :(得分:1)

您需要保存新对象以使其保持持久性,而不是依赖父对象的级联设置。在刷新会话之前不会发生级联。我假设您自己分配ID而不使用生成的标识符。