Nhibernate PersistanceSpecification检查表在多对多关系上失败
我的单元测试有时通过,有时失败。我的单元测试使用PersistanceSpecification类来测试我的两个实体之间的多个关系。我似乎遇到了与这里描述的完全相同的问题: 是否有其他人遇到过这个问题?如果是,您是否能够在不放弃PersistanceSpecification的情况下解决它或解决它 我认为这一切都是在我将集合公开为带有私有支持字段的IEnumerable而不是让属性直接访问底层集合时开始发生的 以下是我的实体及其映射的示例:Nhibernate PersistanceSpecification检查表在多对多关系上失败,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我的单元测试有时通过,有时失败。我的单元测试使用PersistanceSpecification类来测试我的两个实体之间的多个关系。我似乎遇到了与这里描述的完全相同的问题: 是否有其他人遇到过这个问题?如果是,您是否能够在不放弃PersistanceSpecification的情况下解决它或解决它 我认为这一切都是在我将集合公开为带有私有支持字段的IEnumerable而不是让属性直接访问底层集合时开始发生的 以下是我的实体及其映射的示例: public class UserHeaderMap
public class UserHeaderMap : ClassMap<UserHeader>
{
public UserHeaderMap()
{
Id(x => x.UserId);
HasManyToMany(x => x.Groups)
.Table("USER_GROUP_COMPOSITE")
.ParentKeyColumn("USER_ID")
.ChildKeyColumn("GROUP_ID")
.Access.CamelCaseField()
.Cascade.All()
.Inverse()
.FetchType.Join();
}
}
public class GroupHeaderMap : ClassMap<GroupHeader>
{
public GroupHeaderMap()
{
Id(x => x.GroupId);
HasManyToMany(x => x.Users)
.Table("USER_GROUP_COMPOSITE")
.ParentKeyColumn("GROUP_ID")
.ChildKeyColumn("USER_ID")
.Access.CamelCaseField();
}
}
//Unit test runs the following (some things are omitted for brevity)
new PersistenceSpecification<UserHeader>(session)
.CheckList(x => x.Groups, groups, (x, g) => x.AddGroup(g))
.VerifyTheMappings();
public类UserHeaderMap:ClassMap
{
公共用户headermap()
{
Id(x=>x.UserId);
HasManyToMany(x=>x.Groups)
.表格(“用户组组合”)
.ParentKeyColumn(“用户ID”)
.ChildKeyColumn(“组ID”)
.Access.CamelCaseField()
.Cascade.All()
.Inverse()
.FetchType.Join();
}
}
公共类GroupHeaderMap:ClassMap
{
公共组头映射()
{
Id(x=>x.GroupId);
HasManyToMany(x=>x.Users)
.表格(“用户组组合”)
.ParentKeyColumn(“组ID”)
.ChildKeyColumn(“用户ID”)
.Access.CamelCaseField();
}
}
//单元测试运行以下内容(为了简洁起见,省略了一些内容)
新PersistenceSpecification(会话)
.检查表(x=>x.组,组,(x,g)=>x.添加组(g))
.验证应用程序();
这实际上是PersistanceSpecification
类中的一个bug,在Fluent NH中进行跟踪
错误正在此处被跟踪: