【问题标题】:NHibernate 1st Level Cache when Item is added to a HasMany Collection将项目添加到 HasMany 集合时的 ​​NHibernate 一级缓存
【发布时间】:2010-11-18 02:17:27
【问题描述】:

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

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

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

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

session.Get<BehavioralEvent>(id);

【问题讨论】:

    标签: c# nhibernate caching fluent-nhibernate


    【解决方案1】:

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

    【讨论】:

    • 是的,我自己分配 ID。所以只需调用 session.save 然后将我的对象添加到集合中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多