linq 中的算术运算符

发布于 2024-12-03 07:50:54 字数 933 浏览 0 评论 0原文

执行 Linq 中不允许的算术运算符。它给出错误 + 不能应用于 lambda 表达式。 CostperResponse.Cost 的数据类型为decimal,

        var costperrespone= from v in lstSale
                                 group v by v.ActionGroupName into g
                                 select new CostperResponse
                                 {
                                     ActionGroupName = g.Key,
                                     Cost = ((x => Convert.ToDecimal(x.ResponseROCount))) / ((x => Convert.ToDecimal(x.ResponseWPAmount)) + (x => Convert.ToDecimal(x.ResponseWPAmount)))
                                 };

sqlserver 查询为

     select SUM((cast(isnull(response_ro_count,0) as decimal))/(cast(isnull(response_cp_amount,0)as decimal) + cast(isnull(response_wp_amount,0)as decimal))) , action_group_name from GM_Tempdata where cast(response_ro_count as decimal)>0 group by action_group_name

do arithmetic operators not allowed in Linq. it giving error + can not applied to lambda expression. CostperResponse.Cost is of datatype decimal

        var costperrespone= from v in lstSale
                                 group v by v.ActionGroupName into g
                                 select new CostperResponse
                                 {
                                     ActionGroupName = g.Key,
                                     Cost = ((x => Convert.ToDecimal(x.ResponseROCount))) / ((x => Convert.ToDecimal(x.ResponseWPAmount)) + (x => Convert.ToDecimal(x.ResponseWPAmount)))
                                 };

the sqlserver query is

     select SUM((cast(isnull(response_ro_count,0) as decimal))/(cast(isnull(response_cp_amount,0)as decimal) + cast(isnull(response_wp_amount,0)as decimal))) , action_group_name from GM_Tempdata where cast(response_ro_count as decimal)>0 group by action_group_name

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乞讨 2024-12-10 07:50:54
Cost = ((x => Convert.ToDecimal(x.ResponseROCount))) / ((x => Convert.ToDecimal(x.ResponseWPAmount)) + (x => Convert.ToDecimal(x.ResponseWPAmount))) 

“意思是”

Cost = (somefunc(x) {Convert.ToDecimal(x.ResponseROCount)))} 
/ (anotherFunc(x) { Convert.ToDecimal(x.ResponseWPAmount))} 
+ lastFunc(x) {Convert.ToDecimal(x.ResponseWPAmount)})) 

我不太确定你想将什么分配给成本?

可能你的意思是这样的

Cost = Convert.ToDecimal(v.ResponseROCount) / Convert.ToDecimal(v.ResponseWPAmount) + Convert.ToDecimal(v.ResponseWPAmount)

但是既然你已经分组了,你将需要使用像 Sum() 等这样的聚合?

Cost = ((x => Convert.ToDecimal(x.ResponseROCount))) / ((x => Convert.ToDecimal(x.ResponseWPAmount)) + (x => Convert.ToDecimal(x.ResponseWPAmount))) 

"means"

Cost = (somefunc(x) {Convert.ToDecimal(x.ResponseROCount)))} 
/ (anotherFunc(x) { Convert.ToDecimal(x.ResponseWPAmount))} 
+ lastFunc(x) {Convert.ToDecimal(x.ResponseWPAmount)})) 

I'm not quite sure what you want to assign to Cost?

Possibly you meant something like

Cost = Convert.ToDecimal(v.ResponseROCount) / Convert.ToDecimal(v.ResponseWPAmount) + Convert.ToDecimal(v.ResponseWPAmount)

But since you've grouped, you are going to need to use an aggregate like Sum() etc?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文