0

これが流暢なnhibernateで可能かどうか知りたいだけです。

データベースに自己参照テーブルがあります。

Table Service
{
int Season (PK) (FK)
int Service_No (PK)
int ParentService_No (FK)
}

このテーブルには、Season および Service_No として複合キーがあり、Season および ParentService_No として自己参照用の外部キーがあります。

サービス クラスに ChildServices というコレクション プロパティを多対多の関係で作成しようとしています。

HasManyToMany(x => x.ChildServices )
.Table("SERVICE")
.Access.Property()
.AsBag()
.Cascade.SaveUpdate()
.LazyLoad()
.Generic()
.ParentKeyColumns.Add("SEASON")
.ParentKeyColumns.Add("SERVICE_NO")
.ChildKeyColumns.Add("SEASON")
.ChildKeyColumns.Add("P_SERVICE_NO");

上記のマッピングを使用すると、コレクションのマッピングの繰り返し列: Service.ChildServices 列: SEASON という例外がスローされます。

これどうやってするの?これは流暢な nhibernate の制限ですか?

私の質問に答えてくれてありがとう。

4

1 に答える 1

0

これはNHibernateの制限です。たとえば、主キーと外部キーの場合など、1つの列を2つの異なるものに使用することはできません。同じテーマに関する私の質問を参照してください

NHibernateの生成されたエイリアスを推測し、そのParentService_No列を外部キーとして使用し、service_noのエイリアスでwhere条件を使用することができます。

于 2012-10-05T10:04:25.227 に答える