nhibernate中的代码映射

时间:2012-10-12 09:58:04

标签: nhibernate

我正在考察一些使用代码映射的映射示例,我有一个简单的问题 如果我有两个像这样映射的属性

Property(x => x.UserName, m => 
        {
            m.Length(50);
            m.NotNullable(true);
        });


Property(x => x.UpperUserName, m => 
        {
            m.Length(50);
            m.NotNullable(true);
            m.UniqueKey(“UniqueUpperUserName”);
            m.Access(Accessor.Field);
        });

m.Access(Accessor.Field);的含义是什么?

为什么它在第二个属性UpperUserName上使用而不在第一个属性中?

感谢。

1 个答案:

答案 0 :(得分:1)

这意味着NHibernate在读取和写入值时不会使用属性本身,而是基础字段。

// This will be used
var string upperUserName;

public string UpperUserName
{
    get { return upperUserName; }
    // Maybe this is a read-only property, 
    // so we must allow NHibernate to update the value somehow
    // set { upperUserName = value; }
}

您可以在NHibernate documentation中详细了解可用的访问类型。只需向下滚动到访问和命名策略表。