【发布时间】:2012-11-29 09:09:21
【问题描述】:
在 Visual Studio 中使用 dbml 自动生成时,存储过程调用通常会如下所示
[global::System.Data.Linq.Mapping.FunctionAttribute(Name="MYDB.ui_index_group_upd")]
public int ui_index_group_upd([global::System.Data.Linq.Mapping.ParameterAttribute(DbType="Int")] System.Nullable<int> group_id, [global::System.Data.Linq.Mapping.ParameterAttribute(DbType="VarChar(32)")] string group_code)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), group_id, group_code);
return ((int)(result.ReturnValue));
}
这通常会这样称呼......
using (var db = new L2SDataContext(base._connectionString))
{
var result = db.ui_index_group_upd(1, "foo");
}
这一切都很好。
但是我想要实现的是一种全局的错误捕获和报告所有此类方法调用的方式,以便记录 proc 的名称以及在出现问题时传递的所有参数的值
我宁愿不为每种方法编写特定的代码 proc 代码,也绝对不想出于明显的原因修改 autogen 代码。
我正在考虑我的调用和 dbml 方法之间的一个层,但我认为也许有人遇到了类似的问题,所以我想我会在我花一天时间搞砸之前把它放在那里,直到我得到一个合理的答案.我认为诀窍是枚举参数和过程名称等的优雅方式
我希望这是有道理的,感谢所有反馈
【问题讨论】:
标签: c# linq linq-to-sql stored-procedures error-handling