フロントエンド アプリケーション (C#) から挿入するすべてのレコードと共に、アプリケーションのユーザー名 ( SYSTEM_USER ではない) を保存する必要があります。アプリケーションのユーザー名をパラメーターとして SP に渡すのではなく、デフォルトの列値としてバインドするための優れた方法を誰かが提案できますか?
質問する
191 次
1 に答える
0
クラスコンストラクターで対象のユーザーを返す関数への参照を取得し、proc を実行するメソッド内でそれを呼び出すことができます-例:
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 に答える