Как мне создать самореферентные отношения «многие ко многим» в отображении Fluent NHibernate? - PullRequest
0 голосов
/ 05 августа 2009

Может кто-нибудь сказать мне, как выполнить это отображение с помощью Fluent NHibernate? Это просто таблица учетных записей с составным ключом, в которой есть много дочерних учетных записей в соединительной таблице.

Вот рабочее отображение NHibernate и генерируемый им SQL-запрос:

<?xml version="1.0"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true">
<class name="NHibernateM2M000.Account, NHibernateM2M000"  lazy="false">
    <composite-id>
        <key-property type="Int32" name="AccountId" />
        <key-property type="Char" name="AccountTypeAbbr" />
    </composite-id>
    <property name="Name" column="AccountName" />
    <bag name="ChildAccounts" lazy="false" table="AccountXref">
        <key>
            <column name="ParentAccountId" sql-type="int" />
            <column name="ParentAccountTyper" sql-type="nchar" length="1" />
        </key>
        <many-to-many class="NHibernateM2M000.Account, NHibernateM2M000">
            <column name="ChildAccountId" sql-type="int"/>
            <column name="ChildAccountType" sql-type="nchar" length="1" />              
        </many-to-many>
    </bag>
</class>

create table Account (AccountId INT not null, AccountTypeAbbr NCHAR(1) not null, AccountName NVARCHAR(255) null, primary key (AccountId, AccountTypeAbbr))

create table AccountXref (ParentAccountId int not null, ParentAccountTyper nchar not null, ChildAccountId int not null, ChildAccountType nchar not null)

alter table AccountXref add constraint FKB769F8B52F1320AB foreign key (ChildAccountId, ChildAccountType) references Account

alter table AccountXref add constraint FKB769F8B5A2DB3DC7 foreign key (ParentAccountId, ParentAccountTyper) references Account

1 Ответ

0 голосов
/ 28 октября 2009

Я полагаю, что после просмотра Fluent NHibernate во время этой публикации и сейчас, это невозможно. Вставка в файл .hbm - единственный способ выполнить то, что я хотел здесь.

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