Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实现表单编辑和审核所有编辑的最佳方法?_C#_Sql Server_Asp.net Mvc_Asp.net Mvc 2_Audit - Fatal编程技术网

C# 实现表单编辑和审核所有编辑的最佳方法?

C# 实现表单编辑和审核所有编辑的最佳方法?,c#,sql-server,asp.net-mvc,asp.net-mvc-2,audit,C#,Sql Server,Asp.net Mvc,Asp.net Mvc 2,Audit,我正在启动一个新项目,它需要允许对表单进行编辑,但要跟踪原始内容、谁做了什么编辑以及编辑的位置(另外,除了visual studio 2010和Microsoft SQL Server Management studio之外,我无法使用任何其他软件,因此建议添加任何软件都没有意义,这纯粹是一个代码或表格设计问题) 我是一个完美主义者,我知道实现这一点的一些可能途径可能会改变我的整体项目设计,但我不确定我对如何实施这一点的想法是否是最好的,因此我喜欢听到其他人对以下想法的意见,以及你自己对实施上述

我正在启动一个新项目,它需要允许对表单进行编辑,但要跟踪原始内容、谁做了什么编辑以及编辑的位置(另外,除了visual studio 2010和Microsoft SQL Server Management studio之外,我无法使用任何其他软件,因此建议添加任何软件都没有意义,这纯粹是一个代码或表格设计问题)

我是一个完美主义者,我知道实现这一点的一些可能途径可能会改变我的整体项目设计,但我不确定我对如何实施这一点的想法是否是最好的,因此我喜欢听到其他人对以下想法的意见,以及你自己对实施上述问题的最快最有效方法的想法

想法:-

  • 我将它设置为,当他们编辑它时,它将显示所有现有的数据范围,从文本框到单选按钮,甚至一些下拉列表,以及他们拥有的值,然后在提交时,它将通过Id将原始记录复制到一个实现表中,创建新记录,然后从主表中删除原始记录

  • 我想用某种方法在表单的任何部分添加X个注释,每个注释都会在底部记录一个来自win auth的时间戳和用户名


  • 编辑-我的目的是获得各种解决方案,但我想一旦我能够开始本项目的编辑部分,如果给出的单个解决方案有效,我会将其标记为正确。

    我不确定这是否是您正在寻找的,但我需要记录所有数据更改(出于审计原因)我实现这一点的方法是在SQL Server中创建一个新的“历史记录”表,该表将存储记录ID、更改记录的人的用户名、他们是否添加/修改/删除了某些内容以及何时发生了这些内容等


    在数据库中添加/编辑/删除内容的代码中,我始终调用ObjectContext.SaveChanges(我使用Entity Framework 4)因此,我实现的是对该方法的扩展,它使用ObjectStateManager的各个部分来获取所需的有关已更改实体的信息,并将详细信息插入历史记录表中。然后,您只需在数据库中查询该表以显示已更改内容的详细信息。

    我几乎无法理解您的lin“你到底有什么问题?@Myzifer,例如下面这句话:跟踪原文,谁做了什么编辑,在哪里编辑。你谈论谁,但没有解释你的网站使用了什么样的身份验证(如果有的话),用户是如何跟踪的,你想在哪里跟踪原始记录?@Darin Dimitrov:事实上,我在第二个想法中提到了我是如何跟踪win auth的用户以及关于原始记录的,我想很明显我希望将其存储在数据库中,但我没有详细说明,因为他的想法是将原始编辑和旧编辑粘贴到一个实现表中,或将原始编辑保留在主表中,但有一个保存所有编辑的编辑表。还有其他人有其他解决方案吗?此链接使用实体框架对其进行了更详细的解释:这似乎涵盖了我的问题,我只是不确定是否能够使用它虽然它使用了XML,但至少它似乎清楚地解释了它需要的步骤,我现在正在标记它,因为它是一个可能的解决方案。