NHibernate имеет много связей с таблицей внуков, содержащей несколько ссылок «многие к одному» - PullRequest
0 голосов
/ 03 декабря 2010

существует три существующие таблицы, определенные следующим образом:

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.

, отображение «есть много» для BusinessUnit не работает.как я могу это осуществить?

1 Ответ

0 голосов
/ 08 февраля 2011

Вы должны использовать HasManyToMany здесь

...