NHibernateには、コードによるマッピングと呼ばれるシステムがあり、開発者はデータベースをコードでマッピングすることができます(名前が示すとおり)。NHibernate3.3.1を使用しています。
私はこれを「Gebruiker」と「Lijst」の2つのクラスで行いました。それらは両方ともお互いのリストを持っているので、これは多対多の関係の典型的な例です。
マッピングは次のとおりです。
Gebruiker
Set(l => l.Lijsten, map =>
{
map.Table("LijstGebruiker");
map.Cascade(Cascade.All);
map.Inverse(true);
map.Key(k => k.Column("Gebruiker"));
}, map => map.ManyToMany(p => p.Column("Lijst")));
Lijst
Set(l => l.Gebruikers, map =>
{
map.Table("LijstGebruiker");
map.Cascade(Cascade.All);
map.Key(k => k.Column("Lijst"));
}, map => map.ManyToMany(p => p.Column("Gebruiker")));
私の知る限り、これにより、Gebruiker列とKey列を持つテーブル「LijstGebruiker」が作成されます。
代わりに:NHibernateは、3つの列を持つテーブルLijstGebruikerを生成します。予想される2つの列に加えて1つが追加されます:elt。Eltは、外部キーを使用するLijstも指します。
これについてインターネットで見つけたウェブサイトによると、これは起こらないはずですが、そうです。私は何が間違っているのですか?