3
我不是NHibernate的/ FNH映射太热了,但我期待在执行国家模式,像德里克贝利的文章的想法在这里:功能NHibernate映射 - 状态模式
我beleive这是前一阵子所以映射代码是过时的,有人可以帮我一把手来更新FNH 1.1吗?
public class OrderStatusMap: ClassMap<OrderStatus>
{
public OrderStatusMap()
{
CreateMap();
}
public void CreateMap()
{
DefaultAccess.AsProperty();
WithTable("OrderStates");
Id(s => s.Id).GeneratedBy.Assigned();
DiscriminateSubClassesOnColumn<string>("Name")
.SubClass<InProcessStatus>()
.IsIdentifiedBy(OrderStatus.InProcess.Name)
.MapSubClassColumns(x => { })
.SubClass<TotaledStatus>()
.IsIdentifiedBy(OrderStatus.Totaled.Name)
.MapSubClassColumns(x => { })
.SubClass<TenderedStatus>()
.IsIdentifiedBy(OrderStatus.Tendered.Name)
.MapSubClassColumns(x => { })
.SubClass<DeliveredStatus>()
.IsIdentifiedBy(OrderStatus.Delivered.Name)
.MapSubClassColumns(x => { })
Map(s => s.Name);
}
}
他的文章是这里的代码的其余部分: http://www.lostechies.com/blogs/derickbailey/archive/2008/11/26/mapping-a-state-pattern-with-nhibernate.aspx
非常感谢您!
Paul
有什么特别的你正在努力?大部分方法名称的前缀都被删除('WithTable' - >'Table'),但这对intellisense来说是相当容易发现的。 – 2010-10-01 11:32:21
我intellisense说,DiscriminateSubClassesOnColumn折旧,我应该使用SubclassMap <> ...我不知道如何使用此。 – 2010-10-01 11:52:43
除了将基类和所有子类放入一个ClassMap中,您将基类的ClassMap作为每个子类的单独SubclassMap。鉴别器列的定义仍然在ClassMap中,但鉴别器值在每个SubclassMap中。 – Rich 2010-10-01 19:40:52