NHibernate支持远程会话和多对多关系

NHibernate支持远程会话和多对多关系,nhibernate,many-to-many,istatelesssession,Nhibernate,Many To Many,Istatelesssession,我在两个实体之间有一种多对多的关系。作为批处理过程的一部分,我正在创建大量这些实体并将它们关联在一起。这是使用IStatelessSession 我正在使用NHibernate 3.0 实体: class Entity1 { ICollection<Entity2> Entities { get; set; } } class Entity2 { ICollection<Entity1> Entities { get; set; } } 这两个实体被正

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

我正在使用NHibernate 3.0

实体:

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

class Entity2
{
    ICollection<Entity1> Entities { get; set; }
}
这两个实体被正确持久化,但是它们之间的关系表不会随这两个实体之间的关系而更新


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

无状态会话会忽略集合。您应该使用常规ISession并调用
ISession。在合理的时间间隔(比如每500个对象)清除
。这样一来,一级缓存就不会膨胀,性能也会很好。

我不确定这和无状态会话有关。你能发布你的映射文件吗?
var entity1 = new Entity1();  
var entity2 = new Entity2();  

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

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