我認爲這是你的後,但不知道。爲了處理子孫實體的持久性,你可以用幾種方法來做到這一點。您可以分別對每個實體執行粗泥土作業。所以這將涉及例如通過參考課程自己保存模塊,可能courseId。
或者你可以看看只保存聚合根,在這種情況下,它看起來像它的課程實體。這將涉及到加載課程,在課程中填充模塊,併爲每個模塊填充章節。那麼當你`db.Courses.Add(newCourse); db.SaveChanges();所有的實體將被堅持。您必須確保您的外鍵和模型參考安裝正確。
例如,爲了節省子實體:
public ActionResult DoSomething(int courseId, Module newModule)
{
var course = someService.LoadCourse(courseId);
course.Modules.Add(newModule);
using (var db = new MyDbContext())
{
db.Courses.Add(course);
db.SaveChanges();
}
return RedirectToAction("Success");
}
也可以單獨保存:
public ActionResult DoSomething(Module newModule)
{
using (var db = new MyDbContext())
{
//You will need to make sure newModule.CourseId is set correctly
db.Modules.Add(newModule);
db.SaveChanges();
}
return RedirectToAction("Success");
}
取決於你的觀點,你就可以判斷哪條路最好走。關於異步保存,您將能夠通過jQuery將這些模型發佈爲json來調用這些端點。在附註中,有一點需要考慮的是爲json請求創建一個自定義Anti Forgery Token驗證器,example。
來源
2013-03-12 06:19:32
gdp
你的問題有點模糊和不確定。這聽起來很合理,而且肯定是可行的。我建議你在項目設計或實施過程中遇到問題時,只需開始項目並提出更具體的問題。 – Slauma 2013-03-07 21:27:17
謝謝!欣賞它:) – AnimaSola 2013-03-08 02:21:04
我會補充的唯一建議是,如果你打算異步做事,你應該確保你熟悉JQuery – StanK 2013-03-08 04:25:26