Я новичок в (Свободно) NHibernate и у меня есть вопрос:
Я следующая структура класса:
<!-- language: c# -->
public class JAccount
{
public virtual long Id { get; private set; }
//some properties
public virtual JProfile Profile { get; set; }
}
public class JProfile
{
public virtual long Id { get; set; }
//some more properties
public virtual int Age { get; set; }
}
Я сопоставил те классы, которые работали нормально ..
<!-- language: c# -->
public class JProfileMap : ClassMap<JProfile>
{
public JProfileMap()
{
Id(x => x.Id).Unique().GeneratedBy.Assigned();
//some more property mappings
}
}
Тогда я подумал, у меня много логики (методов) в этих классах сущностей, и я хотел создать новый класс для каждого из них с наследниками базового класса и сохранить всю логику в нем.
Итак, я сделал что-то вроде:
<!-- language: c# -->
public class TestAccount : JAccount
{
//all properties which did not need to be mapped into the DB
//as well as methods
}
//did the same for JProfile
Проблема теперь в том, что когда я загружаю JAccount из базы данных и встраиваю его в TestAccount
и попытаться сохранить его обратно, я получаю исключение, потому что FluentHibernate не имеет сопоставления для TestAcccount
Мой вопрос сейчас: мне действительно нужно SubClassMap эти новые классы? Я не хочу / нужно, чтобы они отображались в базе данных, потому что все, что они делают - это извлекают логику из ее базового класса. Есть ли другой способ сделать это?
Спасибо за любую помощь