NHibernate: установить id для отображения интерфейса


Я пытаюсь написать (свободное) отображение на интерфейс

public interface IOrderDiscount : IDomainObject<long>

Где

public interface IDomainObject<IdT> : IDomainObject
{
   IdT Id { get; }
}

Вот так (и все другие мыслимые разновидности стратегий доступа)

Id(d => d.Id, "DiscountId")
    .GeneratedBy.HiLo("9")
    .WithUnsavedValue(0)
    .Access.AsReadOnlyPropertyThroughCamelCaseField();

Но все, что я получаю, - это вариации

Could not find field 'id' in class 'IOrderDiscount'

Мой базовый класс реализует это как

public virtual IdT Id { get; protected set; }
Но событие, использующее резервное поле, ничего не меняет. Так что мне остается только гадать, как я мог заставить это работать...
У кого-нибудь есть идея?
1 2

1 ответ:

Вместо этого укажите имя пользовательского столбца с помощью метода Column:

Id(d => d.Id)
    .Column("DiscountId")
    .GeneratedBy.HiLo("9")
    .WithUnsavedValue(0)
    .Access.AsReadOnlyPropertyThroughCamelCaseField();