如何使用NHibernate映射没有setter且没有后备属性的属性?

Bra*_*ton 8 nhibernate nhibernate-mapping fluent-nhibernate

假设我有以下实体:

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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上我想用NHibernate读取和写入我的数据库的所有字段,除了CalculatedAmount,我只是想写,而不是回读.

每个类似的问题和相应的答案都涉及为值指定一个后备存储,我在这种情况下不会有.

如何使用Fluent NHibernate完成此操作?

谢谢!

更新: 这是我尝试过的,以及它导致的错误:

这是我对该物业的映射......

Map(x => x.CalculatedAmount)
      .ReadOnly();
Run Code Online (Sandbox Code Playgroud)

它产生的例外......

无法在类'xxx.CalculationInfo'中找到属性'CalculatedAmount'的setter

小智 5

我发现在Fluent NHibernate中使用此映射的方法是简单地添加Access属性:

Map(x => x.CalculatedAmount).Access.ReadOnly();
Run Code Online (Sandbox Code Playgroud)


Die*_*hon 2

我不使用 Fluent,但在映射中,没有 setter 的持久属性被映射为access="readonly",所以寻找类似的东西.Readonly()

(只读是从模型角度来看;该值被写入数据库并用于脏检查)