У меня есть Entity, Device
, я бы хотел, чтобы пользователь мог искать по всем полям (в идеале все, я бы справился только с текстом). Как я могу это сделать без явного указанияПоиск по всем полям
devices.Where(d =>
d.prop1.Contains(searchterm) ||
d.prop2.Contains(searchterm))
Это должно произойти в базе данных, но не в возвращаемых объектах.
Редактировать
Я уже попробовал один из комментариев, следующий, который не работал
var stringProperties = typeof(Device)
.GetProperties()
.Where(prop => prop.PropertyType == deviceSettingValue.GetType());
var matches = devices
.Where(device => stringProperties.Any(prop => prop.GetValue(device, null) == deviceSettingValue));
var fullmatches = matches.ToList();
Ошибка
Невозможно создать постоянное значение типа 'System.Reflection.PropertyInfo'. В этом контексте поддерживаются только примитивные типы или перечисление типов .
В своем первом фрагменте кода, вы не значит сделать '||' вместо '' &&? – DavidG
Да, это был псевдо-код, поэтому была сделана ошибка - плохое обновление – Chris
Это может помочь ... http://stackoverflow.com/a/15564970/1663001 – DavidG