比方說,我們有這些類:如何在ASP.NET中實現Web窗體平凡編輯
class Teacher {
public int Id { get; set; }
public string FullName { get; set; }
public List<Course> Courses { get; set; }
}
class Course {
public int Id { get; set; }
public string CourseName { get; set; }
}
現在可以說,我已經從教師的列表中選擇一個教師的實例,我已經被重定向到一個頁面,我可以編輯此教師可以教授的課程。因此,有一份她可以在momemt上教授的所有課程清單(取自數據庫),帶有「刪除」選項和用戶可以選擇的所有可用課程的下拉列表;當用戶從下拉列表中選擇課程時,它將被添加到「她可以教授」列表中。最後是一個「保存」按鈕。
但是,當用戶從列表中刪除課程或添加課程時,我不想將它保存到數據庫,直到按下「保存」按鈕。我的問題是:保存教師對象及其子課程對象在編輯之前和保存到數據庫之前?
到目前爲止,我一直在使用Session來保存編輯的對象;添加一個新課程只是爲它的集合添加一個子對象,並且刪除一個課程將從Session中刪除一個子對象。這是最好的方式還是有更好的(或至少更清潔)?
Ahem,我的會話存儲在SQL Server上,所以這是覆蓋的,我猜你的投票是會話... –
我沒有看到任何錯誤的會話,但肯定在通過利弊之前,盲目使用它 - 如果所有您的更改是通過AJAX完成的,例如,您可以使用JavaScript保留瀏覽器內存中的所有未決更改,並且根本不會佔用任何服務器資源。或者,如果您可能希望其他用戶查看其他人的未決更改,那麼待處理的數據庫表格可能是您最好的選擇。所以這都是關於你的要求。但是,如果你已經有會議工作,並且滿足你的需求,我會說如果它沒有損壞,不要修復它。 –