我们非常大的代码库有数百次对 ExecuteMethodCall 的调用,遵循以下模式:
[Function(Name = "dbo.storedproc")]
public ISingleResult<UserData> GetUserData(
[Parameter(Name = "UserId", DbType = "BigInt")] long? userId)
{
IExecuteResult result = ExecuteMethodCall(this, ((MethodInfo)(MethodBase.GetCurrentMethod())), userId);
return ((ISingleResult<UserData>)(result.ReturnValue));
}
但是,这会带来巨大的性能问题(Linq To SQL 的众所周知的问题)。因此,我正在考虑将至少其中一些代码转换为 Compiled Linq To Sql。
我找到了 Compiled Linq To Sql 的示例,但没有一个涉及 ExecuteMethodCall。相反,它们都编译一个 Linq 查询(来自 ... where ... select)。
如果有人能给我一个将上述代码(使用 ExecuteMethodCall)转换为 Compiled Linq To SQL 的示例,我将不胜感激。