使用ExecuteMethodCall编译Linq To SQL

时间:2012-11-12 01:57:28

标签: 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));
    }

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

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

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

1 个答案:

答案 0 :(得分:0)

从user中选择* userid = userId(方法的参数),

SP:exec GetUserData @userId = userId