c# - 无法在 c# 中使用 LINQ 检索 varchar 列的总和
问题描述
var a = 123;
var query = (from p in a where p.ID == a) //gives 10 records.
.Sum(Convert.Int32.Parse(x => x.balance); // this line gives the following message.
错误信息。LINQ to Entities 无法识别方法“Int32 ToInt32 (System.String)”,
varchar 列的数据库设计不能更改为 int 或 double。
解决方案
var a = 123;
var sum = (from p in a where p.ID == a) //gives 10 records.
.Sum(x => int.Parse(x.balance));
var sum = (from p in db.table where p.ID == a)
.AsEnumerable() // @juharr's suggestion
.Sum(x => Convert.ToInt32(x.balance));
您想在每次迭代中转换字符串..而不是循环本身
这假设余额是一个字符串而不是一个 int
推荐阅读
- javascript - 理解错误:未捕获的类型错误:无法在“节点”上执行“appendChild”:参数 1 不是“节点”类型
- json - 如何批量替换“声音”中的文本:[“测试/测试”]
- python - 如何使模板文件夹成为烧瓶的根文件夹?
- java - 可以使用 4k 图像作为 Android-Layout 背景吗?
- android - 在失焦时隐藏文本选择句柄:Android -Webview
- c# - 如何在 C# 中访问结构数组中的元素成员
- google-chrome - 如何防止浏览器按范围从内存缓存中加载js?
- php - 在 php laravel 中拆分数据
- angular - 无法在 Visual Studio 2019 中调试 Asp.Net Core 2.1 Angular 应用程序
- deep-learning - 线性层的 PyTorch 和 Chainer 实现——它们是等价的吗?