मेरे पास रिपोर्ट के लिए कुछ मानों की गणना करने के लिए 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
में बताए जाने के बाद अपने मूल्य ExtraSales
ExtraSales == 11.31
में बताए के बाद test == 11.31
test2 == 11.28
और test3 == 22.59
test3 में बताए के बाद test2
test2 == 0
और test == 11.31
में बताए जाने के बाद 0. है। ExtraSales
में मान जब यह पूरा हो जाए तो 22.5 9 होना चाहिए। यहाँ क्या चल रहा है?
संपादित करें: मैंने ExtraSales
में असाइनमेंट के बाद अतिरिक्त लाइनें जोड़ दी हैं लेकिन मान परिवर्तित नहीं होता है।
एक समर्थक की तरह उत्तर दिया। –
आप जानते हैं कि मुझे बेहतर जाना चाहिए था। मैंने अतीत में उस परिस्थिति की समस्या को एक परिदृश्य में चलाया है जहां ?? कुछ अन्य ऑपरेटर की तुलना में अधिक प्राथमिकता थी। ऐसा लगता है कि डीबगर ने मुझे भ्रामक जानकारी दी है। – Mykroft