我想知道在服务层或存储库中更新数据的正确方法是什么,并避免对服务/存储库之外的对象进行更改。例如:
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!
}
当我自动保存一个新人时,实体会更新任务的标题!!!那么我该如何控制呢?我想拒绝在主存储库之外插入/更新(在这种情况下,任务必须仅在 taskRepository 内插入/更新)。
我应该禁用代理吗?或更改跟踪?要不然?