看到一个场景,在通过id加载实体时,NH通过代理加载(这是预期的),但是,id = 0的后备字段,但虚拟属性(getter),是来自db的实体的id
示例:
private int _id;
public virtual int Id { get { return _id; } }
和映射
...
<id name="Id" access="nosetter.camelcase-underscore">
...
加载实体后,_id = 0,但Id = 4,例如。
在代理实体时,后备字段是否正常行为是否未初始化?
答案 0 :(得分:2)
我会说:别担心。没有任何错误。它是正常行为。
您可以尝试创建另一个属性,例如
public virtual int MyTestId
{
get { return _id + 1; }
}
你会看到MyTestId
是5 (继续上面的案例研究,当Id == 4时)。简单地说,你很可能面对VS调试器......这只是一个人类。