首页 新闻 会员 周边 捐助

关于 linq to entity 的字段之间的运算

0
悬赏园豆:10 [已解决问题] 解决于 2013-04-08 17:41

TotalFeeAmount = list.Sum(x => x.Fee > 0 ? Decimal.Round(Decimal.Multiply(x.Amount, Decimal.Divide((decimal)x.Fee, 100M)), 2) : 0M);

这个是用来统计所有手续费

Fee是double类型,对应数据库的float类型字段,手续费率

Amount是 decimal类型,对应数据库的money类型字段,交易金额

 

提示linq to entity不支持Deimal.XXX运算,这个如何解决?

名字已被占用的主页 名字已被占用 | 初学一级 | 园豆:41
提问于:2013-04-08 16:02
< >
分享
最佳答案
0

使用tolist方法转换为list再处理,或者在数据库处理

收获园豆:10
sinhbv | 老鸟四级 |园豆:2579 | 2013-04-08 16:26

这不是1,2百条的数据,用tolist会立即执行sql查询,会把所有数据都加载进来,好几百万条记录呢

名字已被占用 | 园豆:41 (初学一级) | 2013-04-08 16:31

@然然爹的记忆: 那你只能先筛选数据,然后再求和。或者在数据库中建一个view,然后映射为ef中的实体来使用。

sinhbv | 园豆:2579 (老鸟四级) | 2013-04-08 16:47

@sinhbv: 谢谢大侠,视图是个很好的解决方案

SELECT ROUND(Amount * (CONVERT(Decimal(33, 4), Fee) / 100), 2) AS FeeAmount ... from...

名字已被占用 | 园豆:41 (初学一级) | 2013-04-08 17:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册