2010-11-17 41 views
2

我从MYSQL数据库中提取两个值。我有一个int和一个小数...我如何添加它们?在C#中添加两个IQueryable(int/decimal)#

目前,我的代码是:

orderTotal += cartItem.Count * storeDB.Designs.Select(p => p.Price); 

// countItem.Count = int 
// storeDB.select = decimal 

如何添加这些?我已经尝试过每种方式进行类型转换。任何帮助表示赞赏!

+0

编辑修正'代码'布局和语法风格。 – jcolebrand 2010-11-17 21:12:48

+0

@ user498351欢迎来到StackOverflow,希望你找到你喜欢的。 – jcolebrand 2010-11-17 21:13:12

+0

真的很难说这里发生了什么。请向我们展示这些表格的样子,给我们一些示例数据,以及您要查找的输出内容。 – 2010-11-17 21:13:26

回答

2

storeDB.Designs.Select(p => p.Price)的结果不是小数。这是一个IEnumerable<decimal>。你的逻辑应该是这个样子:

orderTotal += cartItem.Count * 
       storeDb.Designs.First(d => d.Id == cartItem.Id).Price; 

请记住,如果没有在用正确的ID(cartItem.Id)数据库中的一个项目First将抛出。

+0

如果Price是小数点,则不是。这将是一个IQueryable 。 Select方法是一个投影。 ^秘密编辑。 – Dismissile 2010-11-17 21:18:30

+0

@Dismissile,是的,我注意到并修复它之前有人注意到(或所以我认为;-) – 2010-11-17 21:20:28

3

.Select()返回一个集合,即使它只包含一个项目,该集合也不能转换为乘法操作数。看看FirstOrDefault()和它的亲族,它们会返回标量。

如果你期待多个值,你需要的结果乘以之前的东西聚集DesignsSum()