public async Task Update()
        {
            var id = context.Persons.Where(m => m.Name == "Root0")
                     .Select(m => m.Id)
                     .SingleOrDefault();
            var dto = new PersonDTOFlattenedAuto()
            {
                Id            = id,
                Name          = "Root0",
                Surname       = "SurnameModified0",
                SpouseName    = "SpouseName0",
                SpouseSurname = "SpouseSurnameModified0"
            };

            repository.Update(false, dto);
            await repository.SaveChanges();

            var q = provider.Parse <PersonDTOFlattenedAuto>();

            Assert.NotNull(q);
            Assert.NotNull(q.Filter);
            Assert.NotNull(q.Sorting);
            var filterExpression = q.GetFilterExpression();
            var sortExpression   = q.GetSorting();

            var res = await repository.GetPage(filterExpression, sortExpression, 1, 10);

            var first = res.Data.First();

            Assert.Equal(first.Name, "Root0");
            Assert.Equal(first.Surname, "SurnameModified0");
            Assert.Equal(first.SpouseName, "SpouseName0");
            Assert.Equal(first.SpouseSurname, "SpouseSurnameModified0");
        }
        public async Task Add()
        {
            var dto = new PersonDTOFlattenedAuto()
            {
                Name          = "RootNew",
                Surname       = "SurnameNew",
                SpouseName    = "SpouseNameNew",
                SpouseSurname = "SpouseSurnameNew"
            };

            repository.Add(true, dto);
            await repository.SaveChanges();

            Assert.NotNull(dto.Id);
            var id    = dto.Id.Value;
            var added = await repository.GetById <PersonDTOFlattenedAuto, int>(id);

            Assert.NotNull(added);

            Assert.Equal(added.Name, "RootNew");
            Assert.Equal(added.Surname, "SurnameNew");
            Assert.Equal(added.SpouseName, "SpouseNameNew");
            Assert.Equal(added.SpouseSurname, "SpouseSurnameNew");
        }