我正在考察一些使用代码映射的映射示例,我有一个简单的问题 如果我有两个像这样映射的属性
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上使用而不在第一个属性中?
感谢。
答案 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中详细了解可用的访问类型。只需向下滚动到访问和命名策略表。