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);