コード例 #1
0
        public void Resolve_OneToOne_NestedProperty_ShouldReturnDottedPathToNestedProperty()
        {
            // Act
            var include = IncludeExpressionResolver.Resolve <Entity>(x => x.NestedItem.NestedName);

            // Assert
            include.Should().Be("NestedItem.NestedName");
        }
コード例 #2
0
        public void Resolve_DirectProperty_ShouldReturnNameOfProperty()
        {
            // Act
            var include = IncludeExpressionResolver.Resolve <Entity>(x => x.Name);

            // Assert
            include.Should().Be("Name");
        }
コード例 #3
0
        public void Resolve_OneToMany_NestedNestedProperty_ShouldReturnDottedPathToNestedProperty()
        {
            // Act
            var include = IncludeExpressionResolver.Resolve <Entity>(x => x.NestedItems.Select(y => y.NestedNestedItems.Select(z => z.NestedNestedName)));

            // Assert
            include.Should().Be("NestedItems.NestedNestedItems.NestedNestedName");
        }
コード例 #4
0
        private static IQueryable <ClassType> SetIncludes(IQueryable <ClassType> outputQuery, ISpecification <ClassType> specification)
        {
            if (specification.Includes == null || !specification.Includes.Any())
            {
                return(outputQuery);
            }

            foreach (Expression <Func <ClassType, object> > argument in specification.Includes)
            {
                string include = IncludeExpressionResolver.Resolve(argument);
                outputQuery = outputQuery.Include(include);
            }

            return(outputQuery);
        }