我有LINQ查詢以下塊來計算的報告中的值。爲什麼我的linq查詢中的值不會立即顯示?
var items = (from trans in calclabordb.Sales_Transactions
select trans).SelectMany(st => st.Sales_TransactionLineItems).Where(stli => stli.TypeID == typeID);
decimal test = items.Where(stli => stli.Inventory_Item is Base).Sum(stli => (decimal?)stli.Inventory_Item.IntExtraServiceAmount) ?? 0;
decimal test2 = items.Where(stli => stli.Inventory_Item is Extra).Sum(stli => (decimal?)stli.ItemPrice) ?? 0;
decimal test3 = test + test2;
current.ExtraSales = items.Where(stli => stli.Inventory_Item is Base).Sum(stli => (decimal?)stli.Inventory_Item.IntExtraServiceAmount) ?? 0 +
items.Where(stli => stli.Inventory_Item is Extra).Sum(stli => (decimal?)stli.ItemPrice) ?? 0;
我已經在調試器中加入了代碼,我注意到了一些奇怪的地方。分配到test
後其值爲0到分配ExtraSales
ExtraSales == 11.31
後分配到TEST3 test == 11.31
test2 == 11.28
和test3 == 22.59
後分配到test2
test2 == 0
和test == 11.31
之後。當這一切都完成時,ExtraSales
中的值應該是22.59。這裏發生了什麼?
編輯:我已經添加了分配後附加線到ExtraSales
,但價值不會改變。
像專家一樣回答。 – 2011-03-07 21:27:04
你知道我應該知道更好。在過去的情況下,我遇到了這個優先問題?比其他運營商具有更高的優先級。調試器似乎給了我誤導性的信息。 – Mykroft 2011-03-09 14:27:20