NHibernate中的对象标识问题是什么?

3
NHibernate中的对象标识问题是什么意思?
2个回答

2
对象身份问题是一个难题,因为没有完美(即100%准确)的方法来确保普通CLR对象的对象身份与NHibernate中对象身份具有1:1的映射关系。
原因在于,在一种情况下(CLR),对象身份由对象指针定义,在另一种情况下,它由数据库ID值定义。
因此,可能无法完全可靠地将CLR对象映射到NHibernate对象。
顺便说一句:这不仅适用于NHibernate,而且对于任何对象关系映射器都是成立的。

1

对象身份问题涉及对象关系不匹配的问题,以及对象之间等价关系可以以不同方式定义的事实。

默认情况下,对象之间的等价关系是使用内存中的对象指针来定义的。这意味着在两个不同的会话中使用相同的PK加载的两个对象将被认为是不同的,这有点违反直觉。

因此,覆盖等价关系以使用PK似乎很自然,这样两个这样的对象将被认为是等价的。但是,如何处理尚未保存并且尚未分配PK的对象呢?现在您可能开始看到我们遇到的问题类型...

更多详细信息,请查看最佳实践是什么以实现等式,其中我列出了与此问题相关的各种策略和要点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接