public async Task BuildingExpandBuilderTenantExpandCityOrderByBuilderNameSkip3Take1NoCount()
        {
            string query = "/corebuilding?$skip=4&$top=1&$expand=Builder($expand=City),Tenant&$orderby=Name desc,Identity";
            ODataQueryOptions <CoreBuilding> options = ODataHelpers.GetODataQueryOptions <CoreBuilding>
                                                       (
                query,
                serviceProvider,
                serviceProvider.GetRequiredService <IRouteBuilder>()
                                                       );

            Test
            (
                await Get <CoreBuilding, TBuilding>
                (
                    query,
                    options
                )
            );

            void Test(ICollection <CoreBuilding> collection)
            {
                Assert.Null(options.Request.ODataFeature().TotalCount);
                Assert.Equal(1, collection.Count);
                Assert.Equal("London", collection.First().Builder.City.Name);
                Assert.Equal("One L1", collection.First().Name);
            }
        }
        private async Task <ICollection <TModel> > Get <TModel, TData>(string query, ODataQueryOptions <TModel> options = null) where TModel : class where TData : class
        {
            return(await DoGet
                   (
                       serviceProvider.GetRequiredService <IMapper>(),
                       serviceProvider.GetRequiredService <IDataContext>()
                   ));

            async Task <ICollection <TModel> > DoGet(IMapper mapper, IDataContext context)
            {
                return(await context.Set <TData>().GetAsync
                       (
                           mapper,
                           options ?? ODataHelpers.GetODataQueryOptions <TModel>
                           (
                               query,
                               serviceProvider,
                               serviceProvider.GetRequiredService <IRouteBuilder>()
                           ),
                           new QuerySettings {
                    ODataSettings = new ODataSettings {
                        HandleNullPropagation = HandleNullPropagationOption.False
                    }
                }
                       ));
            }
        }
        public async Task BuildingExpandBuilderTenantExpandCityFilterOnNestedNestedPropertyWithCount()
        {
            string query = "/corebuilding?$top=5&$expand=Builder($expand=City),Tenant&$filter=Builder/City/Name eq 'Leeds'&$count=true";
            ODataQueryOptions <CoreBuilding> options = ODataHelpers.GetODataQueryOptions <CoreBuilding>
                                                       (
                query,
                serviceProvider,
                serviceProvider.GetRequiredService <IRouteBuilder>()
                                                       );

            Test
            (
                await Get <CoreBuilding, TBuilding>
                (
                    query,
                    options
                )
            );

            void Test(ICollection <CoreBuilding> collection)
            {
                Assert.Equal(2, options.Request.ODataFeature().TotalCount);
                Assert.Equal(2, collection.Count);
                Assert.Equal("Leeds", collection.First().Builder.City.Name);
            }
        }