サービスレイヤーまたはリポジトリ内のデータを更新する正しい方法を知りたいのですが、サービス/リポジトリ外のオブジェクトに変更を加えないようにします..例:
public class PersonRepository{
public class Insert(Person person){
//code
_db.SaveChanges();
}
}
public class TaskRepository{
public class Insert(Task task){
//code
_db.SaveChanges();
}
public void Update(Task task){}
}
およびコントローラーのサンプルコード:
public ActionResult Insert(Task task)
{
_taskRepository.Insert(task);
task.Title = "foo";
_personRepository.Insert(new Person()); //here the problem!
}
新しい人を自動的に保存すると、エンティティはタスクのタイトルを更新します!!! では、どうすればそれを制御できますか?メインリポジトリ外での挿入/更新を拒否したい(この場合、タスクはタスクリポジトリ内でのみ挿入/更新する必要があります)。
プロキシを無効にする必要がありますか? または追跡を変更しますか?それとも?