IQueryable.OrderBy для объекта Entity - PullRequest
0 голосов
/ 23 ноября 2018

Я знаю, что, реализовав IComparable в классе, как…

public class Person : IComparable<Person>
{
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public int CompareTo(Person other)
    {
        var val = LastName.CompareTo(other.LastName);
        return val == 0 ? FirstName.CompareTo(other.FirstName) : val;
    }
}

… позволяет мне вызывать

IEnumerable.OrderBy(x => x.Person);

… вместо

IEnumerable.OrderBy(x => x.Person.LastName)
           .ThenBy(x => x.Person.FirstName);

Как бы я мог сделать то же самое с IQueryable.OrderBy в LINQ To SQL на объекте Person?

1 Ответ

0 голосов
/ 24 ноября 2018

Попробуйте сделать что-то вроде этого:

IEnumerable.OrderBy(x => strig.Fromat("{0}{1}", x.Person.LastName, x.Person.FirstName);

или (если вы используете более новую версию C #, где поддерживается $):

IEnumerable.OrderBy(x => $"{x.Person.LastName}{x.Person.FirstName}");

Это должно отсортировать ваши элементыпринимая во внимание как фамилию, так и имя (и на пути к повышению производительности за счет итерации по списку всего один раз).

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...