0

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

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 而不是第一个?

谢谢。

4

1 回答 1

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 文档中阅读有关可用访问类型的更多信息。只需向下滚动到访问和命名策略表。

于 2012-10-12T10:02:37.587 回答