【问题标题】:NHibernate IStatelessSession and Many-to-Many RelationshipsNHibernate IStatelessSession 和多对多关系
【发布时间】:2011-09-12 04:49:21
【问题描述】:

我有两个实体之间的多对多关系。作为批处理的一部分,我正在创建大量这些实体并将它们关联在一起。这是使用IStatelessSession

我正在使用 NHibernate 3.0。

实体:

class Entity1
{
    ICollection<Entity2> Entities { get; set; }
}

class Entity2
{
    ICollection<Entity1> Entities { get; set; }
}

批处理代码基本上看起来像:

var entity1 = new Entity1();  
var entity2 = new Entity2();  

entity1.Entities.Add(entity2);  
entity2.Entities.Add(entity1);  

Session.Insert(entity1);   // IStatelessSession.Insert
Session.Insert(entity2);

这两个实体已正确持久化,但是它们之间的关系表并未随着两个实体之间的关系而更新。

我知道这与无状态会话不跟踪对象这一事实有关。但是我将如何实现多对多持久性呢?

【问题讨论】:

  • 我不确定它与无状态会话有关。你能发布你的映射文件吗?

标签: nhibernate many-to-many istatelesssession


【解决方案1】:

无状态会话会忽略集合。您应该使用常规 ISession 并以合理的时间间隔(例如每 500 个对象)调用ISession.Clear。这样一级缓存就不会变得臃肿,而且你会有不错的性能。

【讨论】:

    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 2023-03-23
    • 2012-06-05
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    相关资源
    最近更新 更多