2010-12-03 15 views
0

そこを参照を含む孫表を持つ多くの関係を持って次のように定義された既存の3つのテーブルがある:エンティティが同じように定義されているNHibernateのは複数の多対1

create table business_units (id number(10,0) not null, ... , primary key (id)) 
create table categories (id number(10,0) not null, ... , primary key (id)) 
create table paragraphs (
    id number(10,0) not null, 
    business_unit_fk number(10,0), 
    category_fk number(10,0), 
    ..., 
    primary key (id) 
) 

public class BusinessUnit : Entity { 
    public virtual IList<Category> Categories { get; protected set; } 
} 

public class Category : Entity { 
    public virtual IList<Paragraph> Paragraphs { get; protected set; } 
} 

public class Paragraph : Entity { 
    public virtual BusinessUnit Category { get; set; } 
    public virtual Category Category { get; set; } 
} 

私が持っています

BusinessUnit自動マッピングオーバーライド:

mapping.HasMany(x => x.Categories) 
    .Table("pp_paragraphs") 
    .KeyColumn("business_unit_fk") 
    .Inverse(); 

Category自動マッピングオーバーライド:

mapping.HasMany(x => x.Categories) 
    .Inverse(); 

私は(対多があり、列名の世話をする多対一の規則、ので、私はここで指定する必要はないと思うしています少なくとも私はそうは思わない)。オートマッパは、Paragraphの多対1リファレンスを処理します。

BusinessUnitのhas-manyマッピングが機能しません。どうすればこの問題を解決できますか?

答えて

0

ここでHasManyToManyを使用する必要があります。

関連する問題