0
我想知道什麼是一個服務層或倉庫內更新數據的正確方法,並避免修改服務中心/存儲庫之外的對象..例如:避免更新數據
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中插入/更新)。
我應該禁用代理嗎?或更改跟蹤?要不然?
謝謝,我認爲,但在我的項目中,我想使用工作單元,所以我不能這樣做。無論如何。 – MuriloKunze
我明白了。你有沒有想過在SaveChanges之後調用DbContext Detach()方法,這將會阻止EF在保存後跟蹤實體。 – Judo
是的:)但是有點無聊是不是? – MuriloKunze