From 406290df7819500f249c8120ca39742ab1e86907 Mon Sep 17 00:00:00 2001 From: David Lebee Date: Thu, 22 Mar 2018 23:34:46 -0500 Subject: [PATCH] advancing but not there yet. --- PoweredSoft.DynamicLinq.Test/SelectTests.cs | 8 ++++++-- PoweredSoft.DynamicLinq.Test/TestData.cs | 6 ++++++ PoweredSoft.DynamicLinq/Helpers/QueryableHelpers.cs | 4 ++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/PoweredSoft.DynamicLinq.Test/SelectTests.cs b/PoweredSoft.DynamicLinq.Test/SelectTests.cs index ff9861e..f78c3d4 100644 --- a/PoweredSoft.DynamicLinq.Test/SelectTests.cs +++ b/PoweredSoft.DynamicLinq.Test/SelectTests.cs @@ -82,11 +82,15 @@ namespace PoweredSoft.DynamicLinq.Test { var query = TestData.Authors.AsQueryable(); - query.Select(t => new + var qs = query.Select(t => new { - Comments = t.Posts == null ? null : t.Posts.SelectMany(t2 => t2.Comments).ToList() + CommentLikes = t.Posts == null ? + new List() : + t.Posts.Where(t2 => t2.Comments != null).SelectMany(t2 => t2.Comments.Where(t3 => t3.CommentLikes != null).SelectMany(t3 => t3.CommentLikes)).ToList() }); + var a = qs.ToList(); + var querySelect = query.Select(t => { t.NullChecking(true); diff --git a/PoweredSoft.DynamicLinq.Test/TestData.cs b/PoweredSoft.DynamicLinq.Test/TestData.cs index 4d6e669..bedff34 100644 --- a/PoweredSoft.DynamicLinq.Test/TestData.cs +++ b/PoweredSoft.DynamicLinq.Test/TestData.cs @@ -168,6 +168,12 @@ namespace PoweredSoft.DynamicLinq.Test Content = "ASD" } } + }, + new Author + { + Id = 3, + FirstName = "Mark", + LastName = "Ronson" } }; } diff --git a/PoweredSoft.DynamicLinq/Helpers/QueryableHelpers.cs b/PoweredSoft.DynamicLinq/Helpers/QueryableHelpers.cs index ba875bd..8176329 100644 --- a/PoweredSoft.DynamicLinq/Helpers/QueryableHelpers.cs +++ b/PoweredSoft.DynamicLinq/Helpers/QueryableHelpers.cs @@ -213,8 +213,8 @@ namespace PoweredSoft.DynamicLinq.Helpers var notGroupedType = expr.Type.GenericTypeArguments.FirstOrDefault(); if (notGroupedType == null) throw new Exception($"Path must be a Enumerable but its a {expr.Type}"); - - var body = Expression.Call(typeof(Enumerable), "ToList", new[] { notGroupedType }, expr); + + var body = Expression.Call(typeof(Enumerable), "ToList", new[] { notGroupedType }, expr) as Expression; return body; }