У меня есть два основных объекта: «Property» и «BayOptions», которые имеют «переопределить» поля. Так,LINQ: изменить выражение на основе дочерних свойств
BayOption.Description (строка),
BayOption.DescriptionOverride (BOOL), и
BayOption.DescriptionOverrideValue (строка)
является хорошим примером того, как все поля настройки , (Данные поступают из внутренней системы ERP/CRM, что продавцы могут переопределять значение.)
Я пишу поиск, который принимает во внимание этих переопределения, как это: (Also, see previous article)
List<Property> stringResults = db.Properties
.Where(
x => x.Address.Contains(searchString)
...
Works HERE--> || (x.DescriptionOverride ? x.DescriptionOverrideValue.Contains(searchString) : x.Description.Contains(searchString))
...
// bayoptions TODO: flesh these out more...
Need work here--> || x.BayOptions.Any(g => g.Description.Contains(searchString))
).ToList();
Что Я беспокоюсь о том, как сделать то же самое из «Works ЗДЕСЬ» выше, чтобы «Нужно работать здесь» выше. В принципе, дочерние объекты. Я пробовал что-то вроде этого, но я не уверен, что он работает правильно. Синтаксически это нормально ... в любом случае, будет эта работа ?:
|| x.BayOptions.Any(g => g.DescriptionOverride ? g.DescriptionOverrideValue.Contains(searchString) : g.Description.Contains(searchString))
просто попробовать :-) – Grundy
я провел время манипулирования данных вручную, чтобы проверить это ... видимо, это, кажется, работает .. нужно проверить каждую перестановку, но я думаю, что это делает работа ... Проб у меня мало данных –