Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# sql的linq版本,转换为smallmoney_C#_Sql_Linq_Linq To Sql - Fatal编程技术网

C# sql的linq版本,转换为smallmoney

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

我正在尝试进行linq查询以执行此查询。列附加数据是nvarchar(20)-因此linq将其作为字符串读取

这在SSMS中运行良好

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();