Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NHibernate代理Id值_Nhibernate - Fatal编程技术网

NHibernate代理Id值

NHibernate代理Id值,nhibernate,Nhibernate,看到这样一个场景:在按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 代理实体时不初始化

看到这样一个场景:在按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


代理实体时不初始化支持字段是正常行为吗?

我想说:别担心。没有什么不对的。这是正常的行为

您可以尝试创建另一个属性,例如

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

您将看到
MyTestId
是5(当Id==4时,继续上面的案例研究)。简单地说,您很可能遇到了VS调试器。。。这只是一个人。

应该在NH3.3.3最新版本中提到。我想是这样的。谢谢你的澄清。谢谢