假设以下类:
public class A
{
public virtual ind Id { get; set; }
public virtual int Number { get; protected set; }
}
public class B : A
{
public virtual string SomeValue { get; set; }
public virtual int BookingNumber
{
get { return Number; }
set { Number = value; }
}
}
public class C : A
{
public virtual string SomeOtherValue { get; set; }
public virtual int AccountNumber
{
get { return Number; }
set { Number = value; }
}
}
如您所见,我想以不同的名称公开属性 Number 。
现在我想映射 A、B、C。
public class AMap : ClassMap<A>
{
public AMap()
{
Id(x => x.Id);
Map(x => x.Number);
}
}
public class BMap : SubclassMap<B>
{
public BMap()
{
Map(x => x.SomeValue);
}
}
public class CMap : SubclassMap<C>
{
public CMap()
{
Map(x => x.SomeOtherValue);
}
}
使用此映射,我可以将内容保存到数据库中。
但是,当我查询 B 或 C 时:
Session.QueryOver<B>().Where(x => x.BookingNumber).List();
我收到错误could not resolve property: BookingNumber of: B
我究竟做错了什么?