我们使用EF5进行用户管理,并在Users
和Partners
之间建立简单的一对多关系,而这两个类都是自我跟踪的实体类。
在向数据库添加新用户时,我们创建一个新的用户实体,并检查数据库中是否已存在合作伙伴实体,并相应地设置合作伙伴。
var user = new User {
Partner = userRepository.FirstOrDefault(e => e.PartnerCode == partnerCode) };
现在,当我们执行SaveChanges
时,我们遇到ObjectStateManager
为ObjectStateEntry
实例返回Partner
且State
属性设置为{{}的问题1}}:
目前还不清楚为什么将此状态设置为Added
,因为如果我们只是按照Added
对象的Entity
属性导航到原始实体,我们就会看到它仍然具有状态ObjectStateEntry
:
这会导致合作伙伴实体被写入数据库的问题,即使它已经存在,也非常烦人。
这里可能有任何错误的建议吗?