在 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 方法之间的一个层,但我认为也许有人遇到了类似的问题,所以我想我会把它放在那里,然后再花一天时间搞砸,直到我得到一个合理的答案。我认为诀窍是枚举参数和过程名称等的优雅方式
我希望这是有道理的,感谢所有反馈