我正在使用 NHibernate Conformist 映射。我已经为我的各种集合属性使用ManyToMany
、OneToMany
、Element
和关系类型创建了一些复杂的映射。Component
但我今天遇到了一个让我难过的人。
public class Permission
{
public virtual long PermissionId { get; set; }
public virtual string Name { get; set; }
}
public class User
{
...
public virtual Set<string> Permissions { get; set; }
}
public class Group
{
...
public virtual Set<string> Permissions { get; set; }
}
表Permission
有列PermissionId
和Name
。然后是UserPermission
带有列和的表和带有UserId
列PermissionId
和GroupPermission
的GroupId
表PermissionId
。
如您所见,Permission
是一个实体,用户和权限之间以及组和权限之间存在多对多的关系。但是,为了便于使用User
andGroup
对象,我不想要User
andGroup
拥有一个(使用ConformistSet<Permission>
中的关系类型很容易实现)。ManyToMany
我想要User
并Group
拥有一组权限名称。通常我会用Element
关系类型来实现这一点,除了整个多对多使用连接表问题。
如何映射一组也是多对多的简单类型?