我从MYSQL数据库中提取两个值。我有一个int和一个小数...我如何添加它们?在C#中添加两个IQueryable(int/decimal)#
目前,我的代码是:
orderTotal += cartItem.Count * storeDB.Designs.Select(p => p.Price);
// countItem.Count = int
// storeDB.select = decimal
如何添加这些?我已经尝试过每种方式进行类型转换。任何帮助表示赞赏!
我从MYSQL数据库中提取两个值。我有一个int和一个小数...我如何添加它们?在C#中添加两个IQueryable(int/decimal)#
目前,我的代码是:
orderTotal += cartItem.Count * storeDB.Designs.Select(p => p.Price);
// countItem.Count = int
// storeDB.select = decimal
如何添加这些?我已经尝试过每种方式进行类型转换。任何帮助表示赞赏!
storeDB.Designs.Select(p => p.Price)
的结果不是小数。这是一个IEnumerable<decimal>
。你的逻辑应该是这个样子:
orderTotal += cartItem.Count *
storeDb.Designs.First(d => d.Id == cartItem.Id).Price;
请记住,如果没有在用正确的ID(cartItem.Id
)数据库中的一个项目First
将抛出。
如果Price是小数点,则不是。这将是一个IQueryable
@Dismissile,是的,我注意到并修复它之前有人注意到(或所以我认为;-) – 2010-11-17 21:20:28
.Select()
返回一个集合,即使它只包含一个项目,该集合也不能转换为乘法操作数。看看FirstOrDefault()
和它的亲族,它们会返回标量。
如果你期待多个值,你需要的结果乘以之前的东西聚集Designs
像Sum()
。
编辑修正'代码'布局和语法风格。 – jcolebrand 2010-11-17 21:12:48
@ user498351欢迎来到StackOverflow,希望你找到你喜欢的。 – jcolebrand 2010-11-17 21:13:12
真的很难说这里发生了什么。请向我们展示这些表格的样子,给我们一些示例数据,以及您要查找的输出内容。 – 2010-11-17 21:13:26