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运算,这个如何解决?
使用tolist方法转换为list再处理,或者在数据库处理
这不是1,2百条的数据,用tolist会立即执行sql查询,会把所有数据都加载进来,好几百万条记录呢
@然然爹的记忆: 那你只能先筛选数据,然后再求和。或者在数据库中建一个view,然后映射为ef中的实体来使用。
@sinhbv: 谢谢大侠,视图是个很好的解决方案
SELECT ROUND(Amount * (CONVERT(Decimal(33, 4), Fee) / 100), 2) AS FeeAmount ... from...