我有一个关于在 ASP.NET MVC 中保存对象列表的问题。首先,我没有使用 EntityFramework 或 Nh 之类的 ORM 工具,只需使用 Ado.net
假设我有一个对象产品,我想通过 javascript 收集所有产品数据并一次调用批量更新产品列表。
我的问题是何时应该区分插入、更新或删除的项目?
一种策略是我在 DTO 对象和 javascript ViewModel 上都有一个枚举属性,当我在 viewModel 中添加一个项目时,我将此对象标记为要添加,如果我更改了一个项目,我将其标记为已更新。因此,当此请求执行时,我可以知道要插入或更新哪些项目。
- 优点:在服务器端很容易,不需要从服务器端区分对象状态。
- 缺点:如果我想将此操作发布到将由第三方调用的 webapi,则可能需要第三方用户来区分对象的状态。
区分服务器端的数据,只需给我一个对象列表,在服务器端,首先从数据库中检索当前数据,比较数据,然后检查要插入或更新的记录。
- 优点:所有比较都是从服务器端完成的。
- 缺点:性能问题
无论从客户端传递什么数据,只需删除当前数据并插入新数据
我希望有人能给我一个建议,处理这种情况的最佳做法是什么,我认为这很常见,但我找不到最佳解决方案。