コード例 #1
0
        private void CanSortNullable(
            string propertyName,
            Func <byte[], Godzilla> generator,
            Func <Godzilla, byte[]> selector)
        {
            using var context = new GodzillaContext();

            context.AttachRange(
                generator(null), generator(new byte[] { 9 }),
                generator(null), generator(new byte[] { 3, 3, 3 }),
                generator(new byte[] { 1, 1 }), generator(new byte[] { 9 }), generator(new byte[] { 7 }), generator(new byte[] { 3, 3 }));

            var comparer = context.Model
                           .FindEntityType(typeof(Godzilla))
                           .FindProperty(propertyName)
                           .GetCurrentValueComparer();

            var entries = context.ChangeTracker.Entries <Godzilla>()
                          .OrderBy(e => e.GetInfrastructure(), comparer)
                          .Select(e => selector(e.Entity))
                          .ToList();

            Assert.Equal(
                new[]
            {
                null,
                null,
                new byte[] { 7 },
                new byte[] { 9 },
                new byte[] { 9 },
                new byte[] { 1, 1 },
                new byte[] { 3, 3 },
                new byte[] { 3, 3, 3 }
            },
                entries);
        }
コード例 #2
0
        private void CanSort(
            string propertyName,
            Func <int, Godzilla> generator,
            Func <Godzilla, int> selector)
        {
            using var context = new GodzillaContext();

            context.AttachRange(
                generator(0), generator(9),
                generator(0), generator(3),
                generator(1), generator(9), generator(7), generator(3));

            var comparer = context.Model
                           .FindEntityType(typeof(Godzilla))
                           .FindProperty(propertyName)
                           .GetCurrentValueComparer();

            var entries = context.ChangeTracker.Entries <Godzilla>()
                          .OrderBy(e => e.GetInfrastructure(), comparer)
                          .Select(e => selector(e.Entity))
                          .ToList();

            Assert.Equal(new[] { 0, 0, 1, 3, 3, 7, 9, 9 }, entries);
        }