我有一个关于在ASP.NET MVC中保存对象列表的问题。 首先我没有使用EntityFramework或Nh像ORM工具,只是使用Ado.net在ASP.NET MVC保存对象列表
假设我有一个对象产品,并且我想通过javascript收集所有产品数据并在一次调用中批量更新产品列表。
我的问题是我应该何时区分插入,更新或删除哪个项目?
一个策略是,我有DTO对象和枚举属性 还对JavaScript的视图模型,当我添加项目到 视图模型,标志着我这个对象添加,如果我改变一个项目,我 标记为更新。所以当这个请求发生时,我可以通过 知道要插入或更新哪些项目。
- 优点:它很容易在服务器端,不需要区分服务器端的对象状态。
- 缺点:如果我想将此动作发布到将由第三方调用的webapi,那么可能需要第三方用户 区分对象的状态。
从服务器端区分数据,只要给我对象的名单,在服务器端,首先从数据库retrive目前的数据,对数据进行比较,然后检查要插入或更新该记录。
- 优点:所有的比较都是从服务器端完成的。
- 缺点:proformance问题
什么都从客户端传递的数据,只是删除当前数据并插入新的数据
我希望有人可以给我一个建议,有什么处理这种情况的最佳做法,我认为这很常见,但我无法找到最佳解决方案。
我们在这里谈论多少数据? – 2013-02-28 04:23:52
它的依赖项,例如Order with Order LineItems,可能是订单中的10-20行项目 – Sean 2013-02-28 04:26:14
似乎如果您有大量数据,请将其发送到服务器端并执行所有操作。如果相对较小,请在客户端将对象标记为容易操作(更接近变更源)。我的2cp。 – 2013-02-28 04:29:49