Я пытаюсь динамически построить оператор LINQ where, но у меня возникают проблемы с попыткой написать оператор IN с использованием метода contains в списке.
Вот мой код:
IQueryable<Customer> customers =
(from cus in objectCustomer
select cus); \\objectCustomer is all customers
//List of customer ID's passed into the method.
string[] sCustomerIDs = (string[])DictionaryParameters["CustomerIDs"];
customers = customers.Where(c => c.Assets.Any(a => sAssetIDs.Contains(a.UN_Asset.ToString())));
return customers.Cast<T>().ToList();
При выполнении строки возврата я получаю следующую ошибку: LINQ to Entities не распознает метод метода System.String ToString(), и этот метод не может быть преобразован в выражение хранилища.
Любые идеи? Если я изменю IQueryable на IEnumerable для выполнения запроса, но мне нужно использовать IQueryable, поскольку я использую Entity Framework, а IEnumerable возвращает все записи до того, как мой фильтр сработает.
Огромное спасибо.