私は 2 つのエンティティ Fisioterapeuta と Paciente を持っており、1 つの Fisioterapeuta は * Pacientes を持っています。新しいFisioterapeutaを追加すると、OKです。
Paciente フォームには、Paciente の Fisioterapeuta を選択するための DropDownList があるため、エンティティ Paciente にはタイプ Fisioterapeuta のプロパティがあります。
患者を 1 人追加すると、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です。