Скажем, у меня есть следующий объект:
public class CalculationInfo
{
public virtual Int64 Id { get; set; }
public virtual decimal Amount { get; set; }
public virtual decimal SomeVariable { get; set; }
public virtual decimal SomeOtherVariable { get; set; }
public virtual decimal CalculatedAmount
{
get
{
decimal result;
// do crazy stuff with Amount, SomeVariable and SomeOtherVariable
return result;
}
}
}
В основном я хочу считать и записать все поля к моей базе данных с NHibernate за исключением CalculatedAmount
, который я просто хочу записать и не считать, въезжают задним ходом.
Каждая подобная проблема и соответствующий ответ имели дело с определением запоминающего устройства для значения, которое я не буду иметь в этом сценарии.
Как я могу выполнить этот использующий Быстрый NHibernate?
Спасибо!
ОБНОВЛЕНИЕ: вот то, что я попробовал, и ошибка, к которой это приводит:
Вот мое отображение для свойства...
Map(x => x.CalculatedAmount)
.ReadOnly();
И исключение это уступает...
Не удалось найти метод set для свойства 'CalculatedAmount' в классе 'xxx. CalculationInfo'
Похоже, это вычисленное значение. Если вы можете рассчитать это значение в любой момент времени, зачем вообще его хранить?
Я не использую Fluent, но в отображении постоянное свойство без сеттера сопоставляется с access = "readonly"
, поэтому ищите что-нибудь вроде .Readonly ()
(Readonly - из модели с точки зрения ; значение записывается в БД и используется в грязных проверках)