这是场景:
我有一个 Product Entity,它有一个 ImageID 字段,所以它与 Image Entity 有关系。这都是在模式和 DBML 中定义的。
现在,假设我创建了一个没有 ImageID 的新 Product 实体,并将其保存到数据库中。此时,实体的 _Image 字段已将 HasLoadedOrAssignedValue 设置为 false,这是应该的。
现在,当我从数据库中检索该实体时,没有 ImageID,即 ImageID 设置为 null,并且附加到它的 Image Entity 也设置为 null,HasLoadedOrAssignedValue 设置为 true。为什么?
现在,当我尝试将 ImageID 属性设置为有效的整数时,我得到一个
ForeignKeyReferenceAlreadyHasValueException
异常(exception)。现在,我知道人们说,“哦,你必须设置关系属性本身,所以,Product.Image = someImage,而不是 Product.ImageID = 2”,但我总是设置 ID 字段,它总是有效..嗯,几乎总是这样。
所以,我的问题是双重的:
最佳答案
问题是正在查看 Image 属性并导致它加载 - 甚至可能是调试器。
在 Product.Image 属性中设置断点并查看导致它的路径。
关于.net - 为什么 HasLoadedOrAssignedValue 属性设置为 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1124023/