gpt4 book ai didi

c# - Linq 到实体 : Where clause containing ToString fails

转载 作者:太空宇宙 更新时间:2023-11-03 18:42:18 24 4
gpt4 key购买 nike

我可以做以下事情:

 var result = DB.Products.ToList()  // .AsEnumerable() too
.Where( p => p.ID.ToString() == ViewModel.ID);

但它会提取所有产品,而不仅仅是我想要的产品,然后在本地进行过滤。如果没有 ToList(),它无法在投影中找到/使用 .ToString 方法。 ViewModel.ID 是来自客户端的字符串。

这个问题here谈论相同的问题,减去 where 子句,但答案并不能解决在本地提取每个产品的问题。

我的 ViewModel.ID 是字符串,因为如果用户更改值,knockout.js 会将其从数字转换为字符串。我想我会先研究这个问题,因为排除它可能更容易。

最佳答案

我认为您是从错误的方向来解决问题的。将 ViewModel.ID 转换回整数 (int.Parse),然后您可以将过滤卸载回数据库。这比将 p.ID 转换为数据库中的字符串的变通方法要好得多,此举可能会破坏对数据库中值的任何索引。

关于c# - Linq 到实体 : Where clause containing ToString fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7563126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com