0

2 つのエンティティに対して多対多の関係を作成しました。しかし、マッピングは片側だけに設定されていました。たとえば、OrderMap クラス:

    HasManyToMany(x => x.Fields)
            .Access.CamelCaseField(Prefix.Underscore)
            .ChildKeyColumn(ColumnNames.Field_Id)
            .ParentKeyColumn(ColumnNames.Order_Id)
            .LazyLoad()
            .Cascade.All()
            .Table(TableNames.Order_Fields_Join);

しかし、反対側、つまり FieldMap クラスの場合。このマッピングは指定しませんでした。Nhibernate は現在のところエラーをスローしていますが、これが原因であるかどうかはわかりません。これが正しいかどうか教えてもらえますか? 私のnhibernateエラーは次のとおりです:「同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられていました」

4

1 に答える 1

0

両側にManyToManyをマッピングする必要はありません。投稿したとおり、完全に合法です。発生しているエラーは、同じ識別子を持つ2つの異なるオブジェクトを保存/更新/削除する必要があるためです。これは、バグを示しているため、NHibernateがスローします。例外をスローするコードを投稿します。

于 2012-09-14T07:10:22.810 に答える