NHibernate:将id设置为接口映射

时间:2009-09-24 03:25:27

标签: nhibernate fluent-nhibernate nhibernate-mapping

我尝试针对接口编写(流畅的)映射

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 个答案:

答案 0 :(得分:0)

通过Column方法指定自定义列名称:

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