Столбец Custom Id в имени объекта Fluent NH

Я использую архитектуру S # arp с Fluent Nhibernate и Automapper в устаревшей БД.

Столбец id в одной из таблиц отличается от соглашения об автоматическом сопоставлении, поэтому я безуспешно пытался переопределить его. Я получаю эту ошибку

FluentNHibernate.Cfg.FluentConfigurationException: при создании SessionFactory использовалась недопустимая или неполная конфигурация. Проверьте коллекцию PotentialReasons и InnerException для получения дополнительных сведений.

  • База данных не была настроена с помощью метода базы данных.

FluentNHibernate.Cfg.FluentConfigurationException: при создании SessionFactory использовалась недопустимая или неполная конфигурация. Проверьте коллекцию PotentialReasons и InnerException для получения дополнительных сведений.

  • База данных не была настроена с помощью метода базы данных.

    ---- NHibernate.MappingException: (XmlDocument) (3,6): ошибка проверки XML: элемент 'class' в пространстве имен 'urn: nhibernate-mapping-2.2' имеет недопустимое свойство дочернего элемента 'property' в пространстве имен 'urn: nhibernate -mapping-2.2 '. Список возможных ожидаемых элементов: «мета, подзапрос, кеш, синхронизация, комментарий, туплайзер, идентификатор, составной-идентификатор» в пространстве имен «urn: nhibernate-mapping-2.2». ---- System.Xml.Schema.XmlSchemaValidationException: элемент 'class' в пространстве имен 'urn: nhibernate-mapping-2.2' имеет недопустимое свойство дочернего элемента 'property' в пространстве имен 'urn: nhibernate-mapping-2.2'. Список возможных ожидаемых элементов: «мета, подзапрос, кеш, синхронизация, комментарий, туплайзер, идентификатор, составной-идентификатор» в пространстве имен «urn: nhibernate-mapping-2.2».

Как мне воспользоваться соглашением об автоматическом сопоставлении идентификаторов и установить собственный столбец в качестве идентификатора с помощью функции переопределения?

Примечание. Это только для одного объекта. Я не хочу менять общие правила сопоставления идентификаторов
Вот моя текущая функция переопределения

  public class AuthMap : IAutoMappingOverride<Auth>
  {
    public void Override(AutoMapping<Auth> mapping)
    {
      mapping.Table("x_auth");
      mapping.Map(x => x.Id, "user_id");
      mapping.Map(x => x.SessId, "sess_id");
    }
  }

person Quintin Par    schedule 03.01.2010    source источник


Ответы (1)


Разобрался:

Используйте это как

mapping.Id(x => x.Id).Column("user_id");
person Quintin Par    schedule 03.01.2010