Я взглянул на ответ this, и это частично зависит от решения моей проблемы.Лямбда и вложенные объекты
Однако мне нужно следующее.
У меня есть объект;
Product
string code
List<suitability> items
, а затем у меня есть этот объект;
Suitability
key
value
Каждый продукт имеет переменное количество [пунктов], а пары ключ/значение отличаются от продукта к продукту.
При поиске мне дается список объектов пригодности. Теперь мне нужно искать все продукты, содержащие (все) предоставленные объекты пригодности.
Так, например, продукт может иметь стоматологический = истинный и терапия = истина.
Я могу получить запрос на все продукты, имеющие dental = true и therapies = false.
@Simon, я попытался реализовать это, но потом я вспомнил, что у меня нет datacontext, так как это не LINQ to SQL, и когда я применяю его к списку IEnumerable, я получаю сообщение об ошибке. Ошибка \t Аргументы типа для метода 'System.Linq.Enumerable.Where (System.Collections.Generic.IEnumerable , System.Func )' не может быть выведен из использования. Попробуйте явно указать аргументы типа. –
griegs
@griegs add .Compile(), чтобы получить Func из выражения «предикат» ... Я обновил свой ответ. –
Я передумал и выбрал это как предпочтительный ответ. Работает, спасибо. Я все еще должен согласиться с @Aaronaught, что подход использования модели EAV не идеален, но когда у вас нет альтернативы ... – griegs