我需要存储应用程序用户名(不是SYSTEM_USER)以及我从前端应用程序(C#)插入的每条记录。谁能建议一个很好的方法将应用程序用户名绑定为默认列值,而不是将其作为参数传递给 SP?
问问题
191 次
1 回答
0
您可以引用一个在您的类构造函数中返回感兴趣的用户的函数,并在执行过程的方法中调用它 - 例如:
public class SomeContext
{
private readonly Func<string> getUserName;
public SomeContext(Func<string> getUserName)
(
this.getUserName = getUserName;
)
public void SaveSomething(\* parameters here *\)
{
// build your proc based on someThing plus 'this.getUserName();'
var cmd = "Exec whatever";
ExecuteSqlCommand(cmd);
}
}
您可以SomeContext
使用依赖注入框架进行连接,并将getUserName
参数绑定到返回您感兴趣的用户名的函数(() => HttpContext.Current.User.Identity.Name
例如,在 ASP.Net MVC 中)。
然后在运行时,当您调用 时SaveSomething
,用户名将作为 proc 的参数发送到 SQL。
于 2013-07-11T02:18:46.647 回答