一个linq问题

yaotomo 2016-11-08 05:12:23
数据库中没有成本单价字段,单价根据库存金额除以数量,四舍五入保留两位小数得到。
怎么实现?linq表达式中不能做类型转换的运算吧

var stocklist = from s in db.ta_stock
select new
{
库存编号 = s.STOCKID,
仓库全名 = s.STORAGEDESC,
库位全名 = s.LOCATIONDESC,
商品编号 = s.MATERIALID,
商品全名 = s.MATERIALDESC,
物料组 = s.MATERIALGROUP,
物料大类=s.MATERIALTYPE,
库存数量 = s.NUMBER,
单位 = s.UNIT,
辅助单位=s.AUXILIARYUNIT,
成本单价 = ???,
库存金额 = s.PRICE,
使用期限 = s.EXPIRYDATE,
最后盘库时间 = s.LASTTAKESTOCK,
盘库人 = s.TAKESTOCKUSER
};
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaotomo 2016-11-08
  • 打赏
  • 举报
回复
谢谢两位前辈,问题解决了
EnForGrass 2016-11-08
  • 打赏
  • 举报
回复
引用 3 楼 Chinajiyong 的回复:
用Let关键字看行不行。不保证正确,试一下 var stocklist = from s in db.ta_stock Let 成本= Math.Round(s.PRICE / s.NUMBER,2) select new { 库存编号 = s.STOCKID, 仓库全名 = s.STORAGEDESC, 库位全名 = s.LOCATIONDESC, 商品编号 = s.MATERIALID, 商品全名 = s.MATERIALDESC, 物料组 = s.MATERIALGROUP, 物料大类=s.MATERIALTYPE, 库存数量 = s.NUMBER, 单位 = s.UNIT, 辅助单位=s.AUXILIARYUNIT, 成本单价 = ???, 库存金额 = s.PRICE, 使用期限 = s.EXPIRYDATE, 最后盘库时间 = s.LASTTAKESTOCK, 盘库人 = s.TAKESTOCKUSER };
var stocklist = from s in db.ta_stock Let 成本= Math.Round(s.PRICE / s.NUMBER,2) select new { 库存编号 = s.STOCKID, 仓库全名 = s.STORAGEDESC, 库位全名 = s.LOCATIONDESC, 商品编号 = s.MATERIALID, 商品全名 = s.MATERIALDESC, 物料组 = s.MATERIALGROUP, 物料大类=s.MATERIALTYPE, 库存数量 = s.NUMBER, 单位 = s.UNIT, 辅助单位=s.AUXILIARYUNIT, 成本单价 = 成本, 库存金额 = s.PRICE, 使用期限 = s.EXPIRYDATE, 最后盘库时间 = s.LASTTAKESTOCK, 盘库人 = s.TAKESTOCKUSER };
EnForGrass 2016-11-08
  • 打赏
  • 举报
回复
用Let关键字看行不行。不保证正确,试一下 var stocklist = from s in db.ta_stock Let 成本= Math.Round(s.PRICE / s.NUMBER,2) select new { 库存编号 = s.STOCKID, 仓库全名 = s.STORAGEDESC, 库位全名 = s.LOCATIONDESC, 商品编号 = s.MATERIALID, 商品全名 = s.MATERIALDESC, 物料组 = s.MATERIALGROUP, 物料大类=s.MATERIALTYPE, 库存数量 = s.NUMBER, 单位 = s.UNIT, 辅助单位=s.AUXILIARYUNIT, 成本单价 = ???, 库存金额 = s.PRICE, 使用期限 = s.EXPIRYDATE, 最后盘库时间 = s.LASTTAKESTOCK, 盘库人 = s.TAKESTOCKUSER };
  • 打赏
  • 举报
回复
正怒月神 2016-11-08
  • 打赏
  • 举报
回复
var stocklist = (from s in db.ta_stock select new { 库存编号 = s.STOCKID, 仓库全名 = s.STORAGEDESC, 库位全名 = s.LOCATIONDESC, 商品编号 = s.MATERIALID, 商品全名 = s.MATERIALDESC, 物料组 = s.MATERIALGROUP, 物料大类=s.MATERIALTYPE, 库存数量 = s.NUMBER, 单位 = s.UNIT, 辅助单位=s.AUXILIARYUNIT, 成本单价 = 0, 库存金额 = s.PRICE, 使用期限 = s.EXPIRYDATE, 最后盘库时间 = s.LASTTAKESTOCK, 盘库人 = s.TAKESTOCKUSER }).ToList().select(x=>new ......这里在计算你的成本单价);

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧