在asp.net Wizard Control中管理多对多关系

时间:2010-05-27 11:48:58

标签: c# asp.net many-to-many datasource wizard

假设我拥有许多属性的实体。在输入表单中,我决定实现向导控件,以便我可以通过几个步骤收集有关此实体的信息。问题是我需要收集已经建模的信息有多对多的关系。

我打算使用telerik gridview来管理它(添加/编辑/删除),问题是我在哪里存储该数据,因为尚未在数据库上创建插入表单中的实体。好的,所以我可以将所有信息存储在驻留在viewstate中的临时列表中,等待我在数据库中转储所有内容的最终提交,但我收集文件的步骤之一...现在在viewstate中存储文件了问题,就像在会话中存储它们一样......

我一直在考虑以一种方式实现用户必须首先提交一些信息(比如前3个步骤),将数据提交到创建父实体的数据库,然后开始插入所有子实体......但是这会很奇怪,因为它很困惑,因为在第一步你没有将数据保存到数据库以及你直接提交的下一个数据......

有人对此有任何想法吗?

由于

1 个答案:

答案 0 :(得分:1)

考虑在数据库中创建一个“holding”表,您可以在其中存储向导数据,而不是将其存储在ViewState中。该表可以有一个用户的SessionID列,因此您可以知道哪些记录属于哪些用户。用户完成向导步骤后,您可以检索所有数据并将其提交到最终表格。

您可能还希望通过删除超过n小时的记录来创建定期清理“保留”表的作业,这样就不会累积孤立记录。