我有两个实体 Fisioterapeuta 和 Paciente,一个 Fisioterapeuta 有 * Pacientes。当添加一个新的 Fisioterapeuta 时,就可以了。
在 Paciente 表单中,我有一个 DropDownList 来选择 Paciente 的 Fisioterapeuta,因此,实体 Paciente 具有 Fisioterapeuta 类型的属性。
当添加一名患者时,EF 复制(创建另一名)Fisioterapeuta。
我知道发生这种情况是因为 Paciente.Fisioterapeuta 为 != null,因为我在尝试保存 Paciente 时使用通用存储库,因此 Fisioterapeuta 变得更加紧密。
有没有办法避免这种行为?如何处理?
PS:我正在使用通用存储库,所以我不能覆盖 SaveChanges 或在保存时进行验证。
编辑1
遵循@Brad Christie 的建议,我执行以下操作:
Paciente p = (Paciente)grdEdicao.DataContext; //here the DataContext brings me the Fisioterapeuta on the property p.Fisioterapeuta
p.Fisioterapeuta = Repository<Fisioterapeuta>.GetByID((int)comboFisioterapeutas.SelectedValue); // i try to set the Fisioterapeuta getting it from the repository.
这个改变并没有解决我的问题。
编辑2
我创建了一个 github 项目来测试它,这里是https://github.com/Ewerton/RelatedEntities_EF