使用ExecuteMethodCall编译Linq To SQL

use*_*862 5 sql linq

我们非常庞大的代码库有数百个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));
    }
Run Code Online (Sandbox Code Playgroud)

但是,这会产生巨大的性能问题(Linq To SQL的众所周知的问题).所以我期待将这些代码中的至少一部分转换为Compiled Linq To Sql.

我找到了Compiled Linq To Sql的例子,但没有一个涉及ExecuteMethodCall.相反,它们都编译了一个Linq查询(来自...... where ... select).

如果有人能给我一个上述代码(使用ExecuteMethodCall)转换为Compiled Linq To SQL的示例,我将不胜感激.

Dex*_*ion 0

select * from user where userid = userId (方法的参数) ,

SP:执行 GetUserData @userId = userId