Я могу сделать следующее:
var result = DB.Products.ToList() // .AsEnumerable() too
.Where( p => p.ID.ToString() == ViewModel.ID);
Но он вытягивает все продукты вместо того, что я хочу, а затем фильтрует локально. Без ToList () он не может найти / использовать метод .ToString в проекции. ViewModel.ID - это строка из клиента.
Этот вопрос здесь говорит об одной и той же проблеме, за исключением предложения where, но ответ не фиксирует вытягивание каждого продукта локально.
My ViewModel.ID является строкой, потому что knockout.js преобразует ее из числовой в строку, если пользователь изменяет значение. Я подумал, что сначала займусь этим, потому что, вероятно, это проще исключить.