C# sql的linq版本,转换为smallmoney
我正在尝试进行linq查询以执行此查询。列附加数据是nvarchar(20)-因此linq将其作为字符串读取 这在SSMS中运行良好C# sql的linq版本,转换为smallmoney,c#,sql,linq,linq-to-sql,C#,Sql,Linq,Linq To Sql,我正在尝试进行linq查询以执行此查询。列附加数据是nvarchar(20)-因此linq将其作为字符串读取 这在SSMS中运行良好 select SUM(CAST(AdditionalData as smallmoney)) from TransTable where ActionID = @actID and UserID = uID; 这是我对linq版本的失败尝试(我想Decimal.Parse()无法从linq转换为sql) 如果结果集不是太大,您可以在客户端上解析该值 decima
select SUM(CAST(AdditionalData as smallmoney)) from TransTable
where ActionID = @actID and UserID = uID;
这是我对linq版本的失败尝试(我想Decimal.Parse()无法从linq转换为sql)
如果结果集不是太大,您可以在客户端上解析该值
decimal value;
var sum = (from a in Context.TransTable
where a.ActionID == action.ActionID && a.UserID == (long)userId
select a.AdditionalValue).ToList().
Select(x => decimal.TryParse(x, out value) ? value : 0).Sum();
你看到这个答案了吗:,似乎这就是你想要做的。这是LINQ到SQL、EF还是另一个LINQ查询提供程序?LINQ到SQL---@CodingGorilla-这是为了尝试去做。ToString()-转换成字符串似乎比解析成小数要容易得多发生了什么,它编译了吗,它是否在运行时爆炸,如果是,是否给出任何堆栈跟踪?
decimal value;
var sum = (from a in Context.TransTable
where a.ActionID == action.ActionID && a.UserID == (long)userId
select a.AdditionalValue).ToList().
Select(x => decimal.TryParse(x, out value) ? value : 0).Sum();