Я использую NHibernate и FluenNHibernate.NHibernate 4.0 разбивает производные классы
У меня есть 2 класса Deal и SpecialDeal. Таблица "SpecialDeal" не содержит колонки томов. Я действительно храню и использую только 4 свойства, которые показаны в SpecialDealMap. Это было нормально, прежде чем я обновил NHibernate до версии 4.0. Теперь запросы терпят неудачу, потому что они пытаются получить также объем из таблицы «SpecialDeal», хотя Volume отсутствует в 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, но исходное сопоставление не распознается как подкласс, потому что вы наследуете его из SubclassMap в вашем SpecialDealMap. Вы пытались изменить это? – Fran
Я думаю, что вы правы, и я должен реорганизовать этот код. – stray