sql - 在Entity Framework 1.0中SaveChanges之后触发存储过程

标签 sql entity-framework sql-server-2008

我在 SQL Server 2008 数据库中有一个审计表,它跟踪表中所做的所有更改。它做得很好,只是它无法捕获当前登录用户的用户名,因为我的连接字符串对所有连接使用一个用户名。

这个应用程序是用 ASP.NET MVC 编写的,这就是为什么我将用户名存储在连接字符串中。

问题是:在调用 SaveChanges 函数后如何将用户名传递到该表?

最佳答案

不要直接使用SaveChanges。创建自己的方法(可以是扩展方法),它将调用 SaveChanges 并运行您的附加代码。每次想要保存更改时都使用此方法。

坏事是你可能会忘记调用你的方法并直接使用SaveChanges。要处理它,您必须重构代码并将 ObjectContext 隐藏到某个包装器 - 存储库中。在存储库上公开 Save 方法并在那里实现您的保存逻辑。

关于sql - 在Entity Framework 1.0中SaveChanges之后触发存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3680225/

相关文章:

sql - 如何按特定顺序排序

php - 获取特定时间范围内的数据库记录

python - 如何使用 python 循环遍历文件并使用文本文件中的参数执行查询

php - 获取登录用户的 ID 以显示类别

c# - 努力抛出 InvalidOperationException : Sequence contains more than one matching element

c# - EF Core (3.1) 工具 : is there a way to downgrade a database to just the previous migration?

.net - Entity Framework 二级缓存

asp.net-mvc-3 - 如何将异常从存储过程传递到我的 Post Action 方法

sql-server-2008 - sql/db 事务没有使用 ms sql 正确回滚

sql-server - 将 SQL Server Express 数据库复制到另一台计算机