我有一個表達式訪問者將表達式轉換爲url格式。但它只是轉換最後調用的表達式。例如,如果我打電話給我的收藏這樣:VisitMethodCall不訪問每個部分
NetworkAccountStorage.Where<NetworkAccountModel>(x => x.ID + 1 > 0).Select(x => x.Name).Distinct()
獨特將是唯一的表達式訪問。如何解決這個問題?
protected override Expression VisitMethodCall(MethodCallExpression m)
{
if (m.Method.DeclaringType == typeof(Queryable) && m.Method.Name == "Where")
{
sb.Append("$filter=");
//this.Visit(m.Arguments[0]);
//sb.Append(") AS T WHERE ");
LambdaExpression lambda = (LambdaExpression)StripQuotes(m.Arguments[1]);
this.Visit(lambda.Body);
return m;
}
else if (m.Method.DeclaringType == typeof(Queryable) && m.Method.Name == "Select")
{
sb.Append("$select=");
LambdaExpression lambda = (LambdaExpression)StripQuotes(m.Arguments[1]);
this.Visit(lambda.Body);
return m;
}
throw new NotSupportedException(string.Format("The method '{0}' is not supported", m.Method.Name));
}
但是房產已被遞歸? –
與Distinct的第一個參數綁定的表達式。可悲的是,我沒有任何例子躺在身邊,沒有時間讓一個 – sehe
發現它。我只需要訪問參數[0] –