none
自訂 Expression 的問題 RRS feed

  • 問題

  • 想自訂一個Queryable的擴展方法.程式碼如下

    public static class TestEx
     {
            public static TSource Update<TSource>(this IQueryable<TSource> source)
            {
                var first = typeof(TestEx).GetMethod("Update");
                var methdodcall = Expression.Call(first.MakeGenericMethod(typeof(TSource)), source.Expression);
                return source.Provider.Execute<TSource>(methdodcall);
            }
    }

    使用的方法如下

    var result = Enumerable.Repeat<int>(0, 100).AsQueryable().Update();

    但是在擴展方法裡面的

    return source.Provider.Execute<TSource>(methdodcall);

    會跳出System.InvalidOperationException的錯誤

    是擴展方法的定義有問題嗎?

    2021年9月24日 上午 03:36