2012-11-26 26 views
6

मैं एक कुल्हाड़ी भंडार से बाहर अलग स्ट्रिंग मूल्यों को प्राप्त करने के लिए कोशिश कर रहा हूँ, लेकिन मैं समान तार बाहर का एक बहुत (तार केवल संख्या शामिल)अलग ऑपरेटर <string>

var ret = context.XInventTransBackOrder 
    .Where(i => i.BatchRouteId != "") 
    .Select(i => i.BatchRouteId) 
    .Distinct() 
    .ToList(); 

हो रही है कहाँ मैं कर रहा हूँ गलत हो रहा?

+1

बैचरौट आईडी का प्रकार क्या है? – AlexH

+5

डेटा का एक नमूना अच्छा होगा। –

+0

हाँ बैचरौट आईडी एक स्ट्रिंग – nk2003dec

उत्तर

1

एक्स ++ में एक विशिष्ट ऑपरेटर नहीं है। स्थगित निष्पादन ToList() पर निष्पादित करने का प्रयास करेगा और इसके कारण विफल हो जाएगा।

3

आप की कोशिश की

var ret = context.XInventTransBackOrder 
    .Where(i => i.BatchRouteId != "") 
    .Select(i => i.BatchRouteId) 
    .ToList(); 
ret = ret 
    .Distinct() 
    .ToList(); 
+0

यह काम करता है! अजीब – nk2003dec

+3

एक सौ डॉलर का सवाल है: क्यों? –

+3

मुझे – RichK

3

तो BatchRouteId एक XElement था, उदाहरण के लिए, तो शायद एक वस्तु संदर्भ तुलना प्रदर्शन किया जाएगा है। उस मामले में करने के लिए

var ret = context.XInventTransBackOrder 
    .Where(i => i.BatchRouteId != null && !String.IsNullOrEmpty(i.BatchRouteId.Value)) 
    .Select(i => i.BatchRouteId.Value) 
    .Distinct() 
    .ToList(); 

अद्यतन # कोड बदलने 1

ध्यान दें कि कुछ प्रकार बनाने आपको लगता है कि वे एक और प्रकार थे अंतर्निहित रूपांतरण लागू। आप string को XName पैरामीटर पर स्पष्ट कास्टिंग के बिना पास कर सकते हैं, और string स्वचालित रूप से XName में परिवर्तित हो जाएगा।


अद्यतन # 2

nk2003dec संदर्भ से एक टिप्पणी के अनुसार LinqToDynamicsAx है। मुझे यह इंटरफ़ेस नहीं पता लेकिन शायद यह Distinct लागू नहीं करता है। आप इस तरह के एक मामले में क्या कर सकते हैं, संदर्भ बदलने के लिए एक XY-LINQ फार्म वस्तु-LINQ करने के लिए System.Linq.Enumerable.AsEnumerable<TSource> विस्तार विधि

var ret = context.XInventTransBackOrder 
    .Select(i => i.BatchRouteId) 
    .Where(id => id != "") 
    .AsEnumerable() 
    .Distinct() 
    .ToList(); 

मैं भी Select और Where उल्टे का उपयोग करके के रूप में इस BatchRouteId

के लिए उपयोग सरल करता है
संबंधित मुद्दे