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
ただし、 andオブジェクトを使いやすくするために、andを持ちGroup
たくありません( Conformistのリレーション タイプを使用すると簡単に実現できます)。私は一連の権限名を持ちたいと思っています。通常、多対多を使用する結合テーブルの問題を除いて、関係タイプでこれを達成します。User
Group
Set<Permission>
ManyToMany
User
Group
Element
多対多でもある単純型のコレクションをマップするにはどうすればよいですか?