Поиск по всем полям сущности

я пытаюсь реализовать "омнибокс»-тип поиска по базе данных клиентов, где один запрос должен пытаться соответствовать любым свойствам клиента.

Вот'некоторые примеры данных, чтобы проиллюстрировать, что яЯ пытаюсь достичь:

FirstName  | LastName  | PhoneNumber | ZipCode | ...
--------------------------------------------------
Mary       | Jane      | 12345       | 98765   | ...
Jane       | Fonda     | 54321       | 66666   | ...
Billy      | Kid       | 23455       | 12345   | ...
Если запрос был"Jane"Яя ожидал, что строка # 1 будет возвращена так же, как строка # 2.Запрос для12345 даст строки № 1 и № 3.

Прямо сейчас мой код выглядит примерно так:

IEnumerable searchResult = context.Customer.Where(
    c => c.FirstName   == query ||
         c.LastName    == query ||
         c.PhoneNumber == query ||
         c.ZipCode     == query
         // and so forth. Fugly, huh?
);

Это очевидно работает. Для меня это пахнет очень плохой практикой, поскольку любое изменение в сущности (удаление свойств, введение новых свойств) может привести к поломке.

Итак: есть ли какой-нибудь LINQ-foo, который будет искать по всем свойствам любого объекта, который я выбрасываю?

Ответы на вопрос(1)

Ваш ответ на вопрос