2014-01-30 29 views
2

看到一個場景,其中通過id加載實體,NH是通過代理加載(這是預期的),但是,id = 0,但虛擬屬性(getter)的支持字段是實體從數據庫。NHibernate代理Id值

實施例:

private int _id; 
public virtual int Id { get { return _id; } } 

和映射

... 
<id name="Id" access="nosetter.camelcase-underscore"> 
... 

在加載實體,所述_id = 0,但ID = 4爲例。

支持字段在實體代理時不會被初始化是正常行爲嗎?

+0

應該提到,關於NH 3.3.3最新。 – TheITGuy

回答

2

我會說:別擔心。沒有任何錯誤。這是正常行爲

您可以嘗試創建另一個屬性,例如

public virtual int MyTestId 
{ 
    get { return _id + 1; } 
} 

而且你會看到MyTestId是5 (繼續上面的案例研究中,當ID == 4)。簡單地說,你很可能面對VS調試器......這只是一個人。

+0

這樣想的。感謝您的澄清。謝謝 – TheITGuy