Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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# 制作表';的多个版本(或历史记录)的最佳方法是什么;s行_C#_.net_Sql Server_Logging - Fatal编程技术网

C# 制作表';的多个版本(或历史记录)的最佳方法是什么;s行

C# 制作表';的多个版本(或历史记录)的最佳方法是什么;s行,c#,.net,sql-server,logging,C#,.net,Sql Server,Logging,大家好, 我正在申请 支持日志记录,但我在 这是一种方法 我打算为我想要的每个表向数据库中添加新表 支持登录到it然后处理 在我的生活中,用我的智慧 方法”。但这会让我增加一个 DB和DAL都有很多工作要做 所以我想知道是否有更简单的方法可以做到这一点???我不知道也许 类似于“日志提供程序”或SQL 服务器触发器还是什么的 请用您的建议支持我,即使是关于支持的一般想法 日志记录。 Edit1: 例如,假设我有“Persons”表和“Person”模型,我想支持记录到我的Person表,所

大家好,

我正在申请 支持日志记录,但我在 这是一种方法

  • 我打算为我想要的每个表向数据库中添加新表 支持登录到it然后处理 在我的生活中,用我的智慧 方法”。但这会让我增加一个 DB和DAL都有很多工作要做

  • 所以我想知道是否有更简单的方法可以做到这一点???我不知道也许 类似于“日志提供程序”或SQL 服务器触发器还是什么的

请用您的建议支持我,即使是关于支持的一般想法 日志记录。

Edit1:

例如,假设我有“Persons”表和“Person”模型,我想支持记录到我的Person表,所以我想知道在特定时间某些Person数据的时间和发生了什么。我希望这一点很清楚

Edit2:

很抱歉,我的问题不清楚,但我刚刚意识到,触发器是做我想做的事情的最佳方式


再次抱歉;}

现在想到的是使用拦截(例如使用Unity拦截实例或类型)

不久前,当wcf服务失败时,我曾使用它尝试故障恢复到本地数据(从以前的请求中缓存)

因此,我想您可以拦截对DAL类的调用,并尝试在管道的前/后事件中记录信息

有关更多信息,请查看此项

另一种方法是通过使用IoC容器(Unity,或者MEF,如果您使用的是.NET4.0),在DAL类(希望有一个基本的DAL类)中注入一个logger类

如果我想起别的事,我会告诉你的


关于…

我目前正在开发一个ASP.NET MVC应用程序。这提供了添加到操作方法的能力。这些是继承自
System.Web.Mvc.ActionFilterAttribute
的属性类


我只是简单地用类似“[log(LogLevel.High)]”的东西装饰我想要记录的任何操作方法(或所有方法的控制器类)。提供该属性的
LogAttribute
类依赖于我的接口
ILoggingProvider
,该接口包含
Write
方法(具体实现记录到数据库)。我在
LogAttribute
类中处理
OnActionExecuted
事件,并使用eventargs构造要传递给
Write
方法的数据。如果您也想记录结果,也可以记录OnResultExecuted事件。

我看到了许多使用“触发器”为表创建某种“历史记录”的示例。

他们制作了“插入、更新和删除”触发器,以满足他们的需要

<>我认为这很好,特别是它不需要从我的应用程序中插入。

但我仍然害怕触发器会影响性能


那么你的建议是什么呢?

很抱歉,我的问题不太清楚,我无法确定哪个答案应该是正确的:(