Свободное имя столбца игнорирования NHIbernate в переопределенном свойстве Id - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть абстрактный базовый класс, который наследует класс Entity класса Sharp Arch:

  /// <summary>
  /// defines an entity that will ne indexed by a search crawler and offered up as full-text searchable
  /// </summary>
  public abstract class IndexedEntity : Entity
  {
    [DocumentId]
    public override int Id
    {
      get { return base.Id; }
      protected set { base.Id = value; }
    }
  }

Это устаревшая база данных, и фактически столбец Id называется «HelpPageID», поэтому у меня есть некоторые переопределения отображения, такие как:

mapping.Id(x => x.Id, "HelpPageID");

Сгенерированный sql для запросов HelpPage работает нормально, когда я просто наследую Entity.Но наследуя IndexedEntity, при переводе в sql переопределение имени столбца игнорируется и вместо него используется Id, что приводит к ошибке.

Редактировать Кажется общей проблемой спереопределение, поскольку размещение переопределения непосредственно в классе имеет тот же чистый эффект

1 Ответ

0 голосов
/ 17 февраля 2012

переопределения сопоставления выполняются только для точного типа, а не типов, которые подклассируют тип в переопределении сопоставления. Вы должны указать переопределение для подкласса.

...