complex query.
This commit is contained in:
		
							parent
							
								
									6fa59c3035
								
							
						
					
					
						commit
						babce13871
					
				| @ -142,33 +142,8 @@ namespace PoweredSoft.DynamicLinq.Helpers | ||||
|                 return lambda; | ||||
|             } | ||||
|              | ||||
|             // TODO special handling for collections. | ||||
|             if (IsEnumerable(memberExpression)) | ||||
|             { | ||||
|                 /* //// first recursion. | ||||
|     //var typeOfClass = typeof(Author); | ||||
|     //var parameter = Expression.Parameter(typeOfClass, "t"); | ||||
|     //var posts = Expression.PropertyOrField(parameter, "Posts"); | ||||
| 
 | ||||
|     //// second recursion | ||||
|     //{ | ||||
|     //    var subListType = posts.Type.GetGenericArguments().First(); | ||||
| 
 | ||||
|     //    var innerParam = Expression.Parameter(subListType, "t2"); | ||||
|     //    var field = Expression.PropertyOrField(innerParam, "Title"); | ||||
|     //    var innerCondition = PoweredSoft.DynamicLinq.Helpers.QueryableHelpers.GetConditionExpressionForMember(innerParam, field, ConditionOperators.Equal, Expression.Constant("Match")); | ||||
|     //    var lambda = Expression.Lambda(innerCondition, innerParam); | ||||
| 
 | ||||
|     //    // any | ||||
|     //    var anyMethod = typeof(Enumerable).GetMethods(BindingFlags.Static | BindingFlags.Public).First(t => t.Name == "All" && t.GetParameters().Count() == 2); | ||||
|     //    var genericAnyMethod = anyMethod.MakeGenericMethod(subListType); | ||||
|     //    var subExpression = Expression.Call(genericAnyMethod, posts, lambda); | ||||
| 
 | ||||
|     //    var finalLambda = Expression.Lambda<Func<Author, bool>>(subExpression, parameter); | ||||
|     //    query = query.Where(finalLambda); | ||||
|     //} | ||||
|  */ | ||||
| 
 | ||||
|                 var listGenericArgumentType = memberExpression.Type.GetGenericArguments().First(); | ||||
|                 var innerParameter = Expression.Parameter(listGenericArgumentType, $"t{++recursionStep}"); | ||||
|                 var innerLambda = InternalCreateFilterExpression(recursionStep, listGenericArgumentType, innerParameter, innerParameter, parts.Skip(1).ToList(), condition, value, convertStrategy, collectionHandling); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user