1

自動マッピングと規則で FluentNH を使用しています。多対多の規則を次のように設定しました。

    public class HasManyToManyConvention : IHasManyToManyConvention
    {
        public void Apply(IManyToManyCollectionInstance instance)
        {
            instance.Key.Column(instance.EntityType.Name + "Id");
            instance.Relationship.Column(instance.Relationship.StringIdentifierForModel + "Id");
        }
    } 

これらが私のテーブルであると仮定します: User(Id,Username,Password), Role(Id,Name)

データベースの生成時に、連想テーブルが正常に生成されています: UserInRole(UserId,RoleId)

ただし、複合主キー セットはありません。慣例からこれを修正する方法はありますか?

誰?これは現在 Fluent でサポートされていないのでしょうか?

4

1 に答える 1

0

慣習は同じままであるべきであることが判明しました。ただし、エンティティ定義で IList<User> と IList<Role> を使用する代わりに、ISet<User> と ISet<Role> を使用しています。これで、NHibernate は連想テーブルに複合主キーを自動的に作成します。

于 2013-02-03T13:46:25.180 に答える