2012-10-12 339 views
0

我考試系統,其通過代碼使用映射一些映射的例子代碼,我已經一個簡單的問題 如果我有兩個屬性,其分別對應這樣映射在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

這意味着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中可用訪問類型的更多信息。只需向下滾動到訪問和命名策略表。