मुझे LINQ में IsNull की समस्या है:
db.WarehouseInputsDetails
.Select(p => new WarehouseInputDetailsViewModel
{
Id = p.Id
RemainingQuantity = p.Quantity - p.LoadingsDetails.Sum(n => n.Quantity)
}).AsQueryable();
p.LoadingsDetails.Sum(n => n.Quantity)
संभावना NULL
। मैं इस तरह परिणाम प्राप्त करना चाहता हूं:
select Id, IsNull(Sum(Quantity),0) as Quantity from LoadingsDetails
मैंने कुछ ऐसा करने की कोशिश की है:
db.WarehouseInputsDetails
.Select(p => new WarehouseInputDetailsViewModel
{
Id = p.Id
RemainingQuantity = p.LoadingDetails.First() == null ? p.Quantity : p.Quantity - p.LoadingsDetails.Sum(n => n.Quantity)
}).AsQueryable();
यह त्रुटि लौटाता है:
System.NotSupportedException: विधि 'प्रथम' का उपयोग केवल अंतिम क्वेरी ऑपरेशन के रूप में किया जा सकता है। इसके बजाय इस उदाहरण में 'FirstOrDefault' विधि का उपयोग करने पर विचार करें।
मैंने कुछ इस तरह की कोशिश की है:
db.WarehouseInputsDetails
.Select(p => new WarehouseInputDetailsViewModel
{
Id = p.Id
RemainingQuantity = (p.LoadingsDetails.Sum(n => n.Quantity) == DBNull.Value) ? p.Quantity : p.Quantity - p.LoadingsDetails.Sum(n => n.Quantity)
}).AsQueryable();
या
db.WarehouseInputsDetails
.Select(p => new WarehouseInputDetailsViewModel
{
Id = p.Id
RemainingQuantity = p.LoadingsDetails.First().Quantity == DBNull.Value ? p.Quantity : p.Quantity - p.LoadingsDetails.Sum(n => n.Quantity)
}).AsQueryable();
वापसी त्रुटियाँ:
ऑपरेटर '==' को 'दशमलव' और 'DBNull' प्रकार के ऑपरेंड पर लागू नहीं किया जा सकता
1 उत्तर
आप यहां Any()
का उपयोग कर सकते हैं जो जांच करेगा कि क्या LoadingDetails
के लिए कोई पंक्ति है, यदि हां तो LoadingDetails
के लिए Quantity
का योग करें:
RemainingQuantity = p.LoadingDetails.Any() ?
p.Quantity - p.LoadingsDetails.Sum(n => n.Quantity) :
p.Quantity
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।