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); }
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); }