public async void TestMultipleQueryInclude() { var expectedDic = new Dictionary <string, Country>() { { "186", new Country() { CountryID = "186", CountryName = "Russia", Cities = new List <City>() { new City() { CityId = "2654", CityName = "Sochi" }, new City() { CityId = "2675", CityName = "Kazan" }, new City() { CityId = "2657", CityName = "Chelyabinsk" } } } }, { "15", new Country() { CountryID = "15", CountryName = "Germany", Cities = new List <City>() { new City() { CityId = "325", CityName = "Berlin" }, } } } }; var parameters = new Dictionary <string, object> { { "rsID", "186" }, { "geID", "15" } }; var countryHolder = new Dictionary <string, Country>(); var context = new NeoContext(Driver); var result = await context.QueryMultipleIncludeable <Country, City>("match(n:Country)<-[:EXISTS_IN]-(c:City) WHERE n.countryID IN [$geID,$rsID] return n,c", parameters, (country, city) => { if (!countryHolder.ContainsKey(country.CountryID)) { countryHolder.Add(country.CountryID, country); country.Cities = new List <City>(); } countryHolder[country.CountryID].Cities.Add(city); return(countryHolder.Values); } ); Assert.NotNull(result); Assert.True(result.Count() == expectedDic.Count); foreach (var country in result) { Assert.True(IsEqual(country, expectedDic[country.CountryID])); } }