Bir rapor için bazı değerleri hesaplamak için linq sorguları aşağıdaki bloğu var.Neden linq sorgularımdaki değerler hemen görünmüyor?
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;
Kodda bir hata ayıklayıcıya adım attım ve bazı tuhaflıklar fark ettim. test
içine tahsis sonra değeri ExtraSales
ExtraSales == 11.31
içine ayarlandıktan sonra test3 içine test == 11.31
test2 == 11.28
ve test3 == 22.59
ayrıldıktan sonra test2
test2 == 0
ve test == 11.31
içine tahsis sonra 0'dır. Bu işlem tamamlandığında, ExtraSales
'daki değer 22.59 olmalıdır. Burada neler oluyor?
DÜZENLEME: ExtraSales
içine görevden sonra ek satırlar ekledim ama değer değişmez.
Bir profesyonel gibi yanıtlandı. –
Biliyorsun, daha iyi bilmeliydim. Geçmişte bu öncelik problemine bir senaryoda rastladım. başka bir operatörden daha yüksek önceliğe sahipti. Hata ayıklayıcı bana yanıltıcı bilgi verdi. – Mykroft