创建/更新/删除分层数据的正确方法

时间:2009-11-16 18:54:04

标签: c# asp.net-mvc design-patterns crud

所以我有这样的结构:

Widget:
  Component 1:
  Component 2:
  Component 3:
  ...
  Component n:

我正在构建一个ASP.NET MVC Web应用程序,作为其功能的一部分,将允许用户创建Widget对象并将Component对象(具有许多属性)分配为Widget对象的“子”。用户可能没有组件或可能添加50.此外,他们可能编辑Widget对象并随意删除或更改组件属性。

应用程序中的所有内容都在工作,但我对这种结构的方式不满意。在提交当前,我提交所有组件及其所有属性。我删除当前与此Widget关联的所有组件,然后枚举每个组件并重新添加它。

......但我对这个解决方案不满意。对于具有大量组件(例如500)的一些小部件,即使用户仅更改了一个组件,该过程也可能是耗时的。但是替代方案(跟踪基于每个人的创建/更新/删除)似乎真的很难构建。

肯定我可以更好地做到这一点,所以我很想知道可以应用哪种模式来解决这个问题(一般来说),特别是在网络环境中应用

1 个答案:

答案 0 :(得分:1)

为什么跟踪创建/更新/删除这么难?看看我的response to a similar question关于找到存储库中的内容与回发内容之间的差异。如果每个组件都有一个唯一的ID(它听起来像它),它应该不那么困难。此外,对于包含大量组件的大型小部件,它应该更快一些,因为您不是每次都重建其列表。