0
我使用NHibernate和FluenNHibernate。NHibernate 4.0打破派生類映射
我有2類Deal和SpecialDeal。 表「SpecialDeal」不包含卷列。我真的存儲和使用SpecialDealMap中顯示的只有4個屬性。在我將NHibernate更新到4.0版本之前,這是可以的。現在查詢失敗,因爲他們試圖從「SpecialDeal」表中獲得音量,儘管音量在SpecialDealMap中不存在,並且它確實不在「SpecialDeal」表中。
我該如何解決?
public class Deal
{
public long Id { get; set; }
public DateTime Time { get; set; }
public decimal Price { get; set; }
public decimal Volume { get; set; }
public Deal() {}
}
public class SpecialDeal: Deal
{
public string Code { get; set; }
}
public class SpecialDealMap: ClassMap<SpecialDeal>
{
Id(x => x.Id);
Map(x => x.Time);
Map(x => x.Price);
Map(x => x.Code);
}
我同意你的意見。但SpecialDeal真的處理一些額外的屬性。在「SpecialDeal」表中添加多餘的列是很方便的,因爲它按預期工作。你知道NHibernate內部發生了什麼變化嗎? – stray
我不知道在NHibernate中發生的變化,但你原來的映射不被識別爲一個子類,因爲你是從你的SpecialDealMap中的SubclassMap繼承。你有沒有試過改變它? – Fran
我認爲你是對的,我應該重構這段代碼。 – stray