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