在C#中添加两个IQueryables(int / decimal)

时间:2010-11-17 21:10:20

标签: c# mysql decimal iqueryable

我从MYSQL数据库中提取了两个值。我有一个int和一个十进制...我该如何添加它们?

目前,我的代码是:

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

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

如何添加这些?我已经尝试了每种方式的类型铸造。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:3)

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

如果您期待多个值,则在将结果乘以之前,您需要将DesignsSum()进行汇总。

答案 1 :(得分:2)

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

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

请注意,如果数据库中没有具有正确ID(First)的项目,cartItem.Id将会抛出。