Свободно составленный объект Nhibernate, укажите родительский ключ - PullRequest
0 голосов
/ 30 апреля 2009

В на этот вопрос мне ответили горячо, чтобы отобразить составную сущность из первичного ключа таблицы. Итак, учитывая:

public UserMap()
{
    WithTable("aspnet_Users");
    Id(x => x.Id, "UserId")
        .GeneratedBy.Guid();
    Map(x => x.Name, "UserName");
    Map(x => x.Login, "LoweredUserName");
    WithTable("LdapUsers", m => {
          m.Map(x => x.FullName, "FullName");
          m.WithKeyColumn("UserId");
    });
}

everithing работает, если в «LdapUser» и в «aspnet_Users» есть столбец с именем «UserId».

Что, если я хочу указать и имя столбца для таблицы внешнего ключа, и имя столбца для ключа из основной таблицы, так как это не pk, поэтому используйте другой столбец для объединения?

1 Ответ

0 голосов
/ 01 мая 2009

Похоже, что это в настоящее время вообще не поддерживается в NHibernate. На JIRA от NHibernate есть открытый выпуск . На самом деле, я думаю, что это для коллекций, но, вероятно, относится и к тому, что вы делаете. Идея состоит в том, что вы добавите атрибут property-ref в элемент <key>, который указывает на свойство, на которое вы хотите сослаться, а не на первичный ключ.

Предположительно, изменение уже доступно в выпуске Alpha2 NHibernate 2.1.0. Конечно, это может произойти после того, как NH2.1 станет общим выпуском, прежде чем он будет добавлен в FNH. Если вы можете, я бы порекомендовал взять релиз Alpha2 и попробовать его в вашей ситуации. Если это не работает для вашей составной сущности, только для коллекций, вы можете отправить еще одну проблему в JIRA, чтобы она также была добавлена.

...