我有两个使用NHibernate映射到DB的实体:
class Entity1
{
public int Id { get; set; }
public Entity2[] ReferencedEntities { get; set; }
}
class Entity2
{
public int Id { get; set; }
}
对于Entity1,我还指定了与Entity2的多对多关系:
HasManyToMany(x => x.ReferencedEntities);
据我所知,内部NHibernate表示创建一些关系实体的多对多关系,如:
class Reference
{
public Entity1 Entity1 { get; set; }
public Entity2 Entity2 { get; set; }
}
我正在使用NHibernate无状态会话将这些实体添加到数据库中,如下所示:
using (var session = sessionFactory.OpenStatelessSession())
{
session.Insert(entity1);
foreach (var entity2 in entity1.ReferencedEntities)
{
session.Insert(entity2);
}
}
但我也希望增加它们之间的关系。为此,我还需要保存关系实体。如何使用无状态会话添加多对多关系?我是否需要隐式指定关系实体,还是有其他方式?
答案 0 :(得分:0)
无状态会话不会进行级联操作,因此如果在其他表中执行这些操作,它将不会保存更改和指向arrayelements的链接。
不必要的选择通常是错误/错误代码的标志,例如UnsavedValue()
或Equals()``GetHashCode()