我的所有词典都有一个表:“Id,TypeId,Value”,因此对于特定的TypeId我有一对:“Id + Value”这是我的具体词典。
我该如何映射?
目前我可以想象我将有一个抽象类Dictionary和具体类:InvoiceTypeDictionary,PaymentTypeDictionary等(我可以将子类鉴别器设置为TypeId,就是这样)。但还有另一种方法可以做到这一点,以避免必要的很多子类吗?
答案 0 :(得分:0)
我不确定是什么价值。
// InvoiceTypeMap : ClassMap<InvoiceType>
public InvoiceTypeMap()
{
Table("dictionaryTable");
Where("typeid=5");
Map(it => it.SomeProperty, "value");
}
// PaymentTypeMap : ClassMap<PaymentType>
public PaymentTypeMap()
{
Table("dictionaryTable");
Where("typeid=3");
Map(it => it.SomeOtherProperty, "value");
}
void SetInvoiceTypeToEntity(Invoice invoice, int invoicetypeid)
{
invoice.Invoicetype = session.Get<InvoiceType>(invoicetypeid);
// or when you only need the Reference without the actual object here
invoice.Invoicetype = session.Load<InvoiceType>(invoicetypeid);
}