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