我正在使用 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是一个实体,用户和权限之间以及组和权限之间存在多对多的关系。但是,为了便于使用UserandGroup对象,我不想要UserandGroup拥有一个(使用ConformistSet<Permission>中的关系类型很容易实现)。ManyToMany我想要User并Group拥有一组权限名称。通常我会用Element关系类型来实现这一点,除了整个多对多使用连接表问题。
如何映射一组也是多对多的简单类型?