小编Roy*_*hay的帖子

如何创建动态LINQ连接扩展方法

Visual Studio 2008中,有一个动态LINQ扩展方法库作为示例发布.我想用join方法扩展它.下面的代码在运行时失败并带有参数未匹配异常.问题出在哪儿?

public static IQueryable Join(this IQueryable outer, IEnumerable inner,
                              string outerSelector, string innerSelector, string resultsSelector,
                              params object[] values)
{
    if (inner == null)
        throw new ArgumentNullException("inner");
    if (outerSelector == null)
        throw new ArgumentNullException("outerSelector");
    if (innerSelector == null)
        throw new ArgumentNullException("innerSelector");
    if (resultsSelector == null)
        throw new ArgumentNullException("resultsSelctor");

    LambdaExpression outerSelectorLambda =
        DynamicExpression.ParseLambda(outer.ElementType, null,
                                      outerSelector, values);
    LambdaExpression innerSelectorLambda =
        DynamicExpression.ParseLambda(inner.AsQueryable().ElementType,
                                      null, innerSelector, values);

    ParameterExpression[] parameters = new ParameterExpression[] {
        Expression.Parameter(outer.ElementType, "outer"),
        Expression.Parameter(inner.AsQueryable().ElementType,
        "inner")
    };
    LambdaExpression resultsSelectorLambda …
Run Code Online (Sandbox Code Playgroud)

linq linq-to-objects linq-to-entities linq-to-sql c#-3.0

13
推荐指数
1
解决办法
3万
查看次数