通过EF传递参数在SQL Server触发器中可用(和连接池?)

时间:2015-07-13 07:13:35

标签: c# asp.net sql-server entity-framework

我谷歌搜索了一段时间,但遗憾的是没有找到明确的解决方案。问题可以分为EF特定部分,而不是EF特定部分。

我有一个Web应用程序(ASP.NET MVC),它通过EF 6使用SQL Server。我想实现审计触发器,所以我想向触发器提供一些审计信息,比如登录当前用户的Web 。我认为在SQL Server中应该有一些连接级参数化工具来初始化自定义SET变量,可以通过SQL在触发期间访问这些变量。在触发器中。我发现的唯一方法是限制CONTEXT_INFO()二进制的方式。

我也知道临时表是什么是本地连接,但是启动所有连接以创建临时表并插入行似乎有点过分。

然而,我最关心的是连接池。在我看来,由于连接池(临时表),提议的解决方案无法正常工作,它有效地杀死了连接池。 (连接字符串操作技术)

仍然我认为这个审核触发器,必须知道Web用户名是如此常见和基本,所以我希望有人找到正确的解决方案,它是可用的,我只是找不到它。

1 个答案:

答案 0 :(得分:2)

如果您使用EF,为什么还要使用触发器呢?您可以覆盖DbContext.SaveChanges()并在C#中实现审计逻辑,并提供所有可用的必需信息。有关基本审核的示例,请参阅this answer。或者here进行更全面的审核。