2010-11-17 44 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()