我的头衔可能很糟糕,因为我在措辞上遇到了什么问题。
我有一个可能包含大量记录的对象,如下所示:
public class AssignmentGenerator : BaseGenerator
{
public bool IsLibrary { get; set; } = false;
public List<LineItem> LineItems { get; set; } = new List<LineItem>();
}
public class LineItem
{
public string Name { get; set; }
public string Value { get; set; }
}
我创建了一个允许编辑对象值的表单,但是行项列表可能变得非常大(我有一个例子是~3000)。在这种情况下,我想在我的视图中将订单项列表设为分页列表,允许一次编辑10到50个项目。
我已经阅读了很多关于如何进行分页的教程和帖子,但是我找到的没有一篇关于如何编辑大量数据的内容。在用户实际单击“保存”按钮之前,我不想将每个页面上的更改保存到数据库。有没有办法将值存储在对象中,根据需要检索它们,然后保存用户操作?
答案 0 :(得分:2)
简短的回答是肯定的,有一种方法 - 你是程序员,你可以做你想做的事。如果没有更多细节,很难给出真实的代码示例,因此下面只是模糊的指导。
您必须将更改存储在某处,但您可以选择将它们保存在临时数据库中,或者将AssignmentGenerator保存在服务器的内存中,并在它们分页时更新集合(假设为1)服务器或固定会话)。
当用户更改页面(而不仅仅是Get端点)时,您必须发布对象的当前状态。您不必保存到真实数据库;你只需更新你的临时副本。 “保存”按钮应触发不同的控制器操作,将临时副本移动到实际数据存储。