我可以做以下事情:
var result = DB.Products.ToList() // .AsEnumerable() too
.Where( p => p.ID.ToString() == ViewModel.ID);
但它会提取所有产品而不是我想要的产品,然后在本地过滤。没有ToList(),它无法在投影中查找/使用.ToString方法。 ViewModel.ID是客户端的字符串。
这个问题here讨论了同样的问题,减去了where子句,但答案并没有解决在本地拉出每个产品的问题。
我的ViewModel.ID是字符串,因为如果用户更改了值,knockout.js会将其从numeric转换为字符串。我想我会首先追求它,因为它可能更容易排除它。
答案 0 :(得分:7)
我认为你正在从错误的方向接近问题。将ViewModel.ID
转换回整数(int.Parse
),然后您可以将过滤卸载回数据库。这比将p.ID
强制转换为数据库中的字符串要好得多,这一举动可能会破坏对数据库值的任何索引。