首页 > 解决方案 > 无法在 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。

标签: c#linq

解决方案


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


推荐阅读