public void Resolve_OneToOne_NestedProperty_ShouldReturnDottedPathToNestedProperty() { // Act var include = IncludeExpressionResolver.Resolve <Entity>(x => x.NestedItem.NestedName); // Assert include.Should().Be("NestedItem.NestedName"); }
public void Resolve_DirectProperty_ShouldReturnNameOfProperty() { // Act var include = IncludeExpressionResolver.Resolve <Entity>(x => x.Name); // Assert include.Should().Be("Name"); }
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"); }
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); }