2

この質問に対する答えを見つけることができませんでした。

あなたが持っているとしましょうClassA

public class ClassA {
    public Guid Id { get; set; }
    public IList<ClassB> { get; set; }
}

そして、オブジェクトClassAのコレクションをネストしました:ClassB

public class ClassB {
    public Guid Id { get; set; }
    public string SomeProperty { get; set;}  
}   

NHibernate を使用してこれらのオブジェクトをテーブルにマップし、スキーマを生成するが、テーブルの外部キー関係を作成しない方法はありClassBますか?

アップデート

解決策を考え出した - コードでマッピングする場合:

Bag<ClassA>(x => x.ClassB, 
            collectionMapping => {
                collectionMapping.Table("ClassB");
                collectionMapping.Cascade(Cascade.All);
                collectionMapping.Key(key => { 
                      key.Column("ClassAId");
                      key.ForeignKey("none");
                 });
                collectionMapping.Lazy(CollectionLazy.NoLazy);
           },
           mapping => mapping.OneToMany(x => {
                 x.Class(typeof(ClassB));
           })
      );
4

1 に答える 1

4

inverse="true"スキーマ生成ツールとしてコレクションマッピングを設定するとFKが作成されないと思います。

編集:コメントが指摘しているように(それを知りませんでした!)xmlマッピングを使用すると、おそらくこれが機能します:

<many-to-one name="Bar" foreign-key="none" />
于 2012-07-12T10:39:32.623 に答える