Как определить имя столбца «один ко многим» из типа объекта - PullRequest
0 голосов
/ 21 апреля 2010

Мне нужен способ определения имени столбца, используемого NHibernate для объединения коллекций «один ко многим» из типа собранной сущности.

Мне нужно иметь возможность определить это во время выполнения.

Вот пример: у меня есть несколько сущностей:

namespace Entities
{
    public class Stable {
        public virtual int Id {get; set;}
        public virtual string StableName {get; set;}
        public virtual IList<Pony> Ponies { get; set; }
    }

    public class Dude {
        public virtual int Id { get; set; }
        public virtual string DudesName { get; set; }
        public virtual IList<Pony> PoniesThatBelongToDude { get; set; }
    }

    public class Pony {
        public virtual int Id {get; set;}
        public virtual string Name {get; set;}
        public virtual string Color { get; set; }
    }
}

Я использую NHibernate для генерации схемы базы данных, которая выглядит примерно так:

create table "Stable" (Id  integer, StableName TEXT, primary key (Id))
create table "Dude" (Id  integer, DudesName TEXT, primary key (Id))
create table "Pony" (Id  integer, Name TEXT, Color TEXT, Stable_id INTEGER, Dude_id INTEGER, primary key (Id))

Учитываячто в моем коде есть сущность Pony, я должен иметь возможность узнать:

  • A.Pony принадлежит ли даже коллекция в отображении?
  • B.Если да, то какие имена столбцов в таблице базы данных 1019 * относятся к коллекциям

В приведенном выше примере я хотел бы видеть, что Pony имеет два столбца коллекции, Stable_id и Dude_id.

1 Ответ

0 голосов
/ 22 апреля 2010

Поскольку Pony создан с использованием Stable_id и Dude_id, я предполагаю, что у вас есть соответствующее отображение в hbm-xml.

Вы также можете добавить сущности в Pony для Stable и Dude, чтобы прояснить отношения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...