Отображение таблиц с помощью NHibernate - PullRequest
1 голос
/ 23 ноября 2011

Я новичок в NHibernate, так что я не уверен, что это место, где можно задавать вопросы.Но вот так.

Это моя проблема:

Я создаю веб-сайт с использованием Orchard CMS.Все таблицы Orchard отображаются с помощью NHibernate.У меня также есть таблицы в той же базе данных, которые НЕ отображаются NHibernate.Эти таблицы были предоставлены клиентом.Мне нужно запросить эти таблицы и отобразить данные на внешнем интерфейсе с помощью Orchard.Я должен держать схемы таблиц в такте.У меня есть учебное пособие по сопоставлению таблиц с использованием NHibernate, однако все, что я вижу в учебниках, требует, чтобы таблицы имели столбец идентификатора в качестве первичного ключа.Ни одна из таблиц, предоставленных мне клиентом, не имеет идентификатора в качестве первого / первичного ключа столбца.Можно ли сопоставить эти таблицы без использования метода ID?Или вариант метода ID?

Id(x => x.Id);

Вместо этого я могу сопоставить таблицу, используя:

MyColumnName/Primarykey(x => x.Id);

или

Id(x => x.MyColumnname/PrimaryKey);

Опять же, на этом этапеЯ не могу перенести данные в новые таблицы, отображаемые NHibernate, а также схема таблицы должна оставаться в порядке.Поскольку Клиент обновляет эти таблицы каждую ночь.

Любая помощь приветствуется.

Спасибо

1 Ответ

2 голосов
/ 23 ноября 2011

вы можете указать разные имена столбцов для свойств и даже разные типы, если вы

table Topic
(
  TopicCode int,
  BrochureDesc text,
  URL text,
  ...
  primary key(TopicCode)
)

public TopicMap()
{
    Id(x => x.Id, "TopicCode").GeneratedBy.Native();
    Map(x => x.BrochureDescription, "BrochureDesc");
    Map(x => x.URL);
    ...
}

Редактировать:

public TopicMap()
{
    CompositeId()
        .KeyProperty(x => x.Subtitle)
        .KeyProperty(x => x.Description)
        .KeyProperty(x => x.ImageURL);
}
...