NHIbernate只读属性-fluent映射

NHIbernate只读属性-fluent映射,nhibernate,fluent-nhibernate,nhibernate-mapping,readonly,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,Readonly,我有下一个实体: public class Topic : EntityBase { private readonly ICollection<Vote> _votes; public virtual string Title { get; protected set; } public virtual ICollection<Vote> Votes { get { return _votes; } }

我有下一个实体:

public class Topic : EntityBase
{
    private readonly ICollection<Vote> _votes;

    public virtual string Title { get; protected set; }
    public virtual ICollection<Vote> Votes
    {
        get { return _votes; }
    }

    public virtual int VotedUpCount
    {
        get
        {
            return _votes.Count(v => v.VotedTo == VoteType.VoteUp);
        }
    }
}

有没有办法使用fluent接口映射只读属性以使该实体正常工作?

为什么要映射它?它只是一个执行某些代码(也可能是一个方法)的.NET属性,与数据库无关,只是根本不映射它

如果需要映射为只读的real DB属性(其中值来自DB列):

Map(x => x.PropertyName).Column("ColumnName").ReadOnly();
// Alternative (does exactly the same, but is more like the NHibernate mapping:
Map(x => x.PropertyName).Column("ColumnName").Not.Insert().Not.Update();

例如,我有一个预定义的数据,并已将其加载到数据库中。“我想让数据保持不变,我该怎么做?”安东在你的问题中说你在数据库中没有这个属性。无论如何,我已将答案更新为包含只读DB属性映射;和.Not.Insert().Not.Update();我确定它们不是“完全相同”,它们实际上有不同的后果(可能是流利的一个bug)。Not.Insert().Not.Update();无法与映射到同一列的第二个字段一起使用,因为在更新时,它将在sql子句中列出该列两次。根据问题的措辞,您接受的答案不适用于您的情况。请编辑问题以匹配答案或取消接受答案。
Map(x => x.PropertyName).Column("ColumnName").ReadOnly();
// Alternative (does exactly the same, but is more like the NHibernate mapping:
Map(x => x.PropertyName).Column("ColumnName").Not.Insert().Not.Update();