在我的C#MVC 5应用程序中,我试图使用linq查询将我的sql server表中的NVarChar列转换为小数并在视图中显示它。
我知道如果我要做一个简单的SQL查询或使用webforms我可以简单地执行以下操作:
Select Sum(Cast(GrandTotal as decimal)) as GrandTotal From [myDB].[dbo].[Table]
WHERE Year = '2017'
我如何在linq中执行此操作?这就是我试过的:
public ActionResult Total()
{
var model = (from p in db.Table
where p.Year.Equals("2017")
select decimal.Parse(p.GrandTotal)).Sum();
return View(model);
}
错误如下: LINQ to Entities无法识别方法' System.Decimal Parse(System.String)'方法,此方法无法转换为商店表达式
不重复
标题类似,但解决方案不同。此外,我能够通过使用给出的解决方案来解决问题。您将此标记为副本的问题没有明确的解决方案
答案 0 :(得分:1)
我不知道可以执行此操作的LINQ-To-Entities功能。我是使用LINQ-To-Objects来做的:
var result = (from p in db.Table where "2017" == p.Year select p).ToList();
var model = (from p in result select decimal.Parse(p.GranTotal)).Sum();