2009-07-25 16 views
7

के साथ संग्रह में है या नहीं, मेरे पास "कर्मचारी" श्रेणी है, इसमें "TypeOfWork" का IList <> है।जांचें कि कोई मान LINQ

public class Employee 
{ 
    public virtual IList<TypeOfWork> TypeOfWorks { get; set; } 
} 

public class TypeOfWork 
{ 
    public virtual Customer Customer { get; set; } 

    public virtual Guid Id { get; set; } 
    public virtual string Name{ get; set; } 
    public virtual bool IsActive{ get; set; } 
} 

सहेजने से पहले, मुझे पता है कि अगर "typeofwid" (एक Guid) "TypeOfWorks" संग्रह में पहले से ही है Lile चाहते हैं।

मैं इस कोशिश की:

var res = from p in employee.TypeOfWorks 
      where p.Id == new Guid("11111111-1111-1111-1111-111111111111") 
      select p ; 

और इस की कोशिश की: विजुअल स्टूडियो के "तत्काल विंडो" में

bool res = employee.TypeOfWorks.Where(f => f.Id == new Guid("11111111-1111-1111-1111-111111111111")).Count() != 0; 

लेकिन मैं त्रुटि प्राप्त: अभिव्यक्ति क्वेरी नहीं कर सकते हैं दोनों में भाव केस

क्या आपके पास कोई विचार है?

धन्यवाद,

उत्तर

19

बस त्रुटि क्या कहती है। आप तत्काल विंडो में LINQ क्वेरी का उपयोग नहीं कर सकते क्योंकि उन्हें लैम्ब्डा कार्यों के संकलन की आवश्यकता होती है। अपने वास्तविक कोड में पहली पंक्ति आज़माएं, जहां इसे संकलित किया जा सकता है। :)

इसके अलावा, यह सब एक पंक्ति में करवाने के लिए, यदि आप ऐसा तरह, LINQ "कोई भी" ऑपरेटर का उपयोग कर सकते हैं:

if(! employee.TypeOfWorks.Any(tow => tow.Id == theNewGUID)) 
    //save logic for TypeOfWork containing theNewGUID 
0

मैं उन काम के दोनों लगता है, वास्तव में। ध्यान रखें कि विजुअल स्टूडियो घड़ी विंडो में लिंक क्वेरीज़ को संभाल नहीं सकता है, इसलिए मुझे संदेह है कि आपके द्वारा देखी गई त्रुटि को कोड की तुलना में विजुअल स्टूडियो समस्या से अधिक है।

0

टाइपऑफवर्क की गणना शुरू करने के लिए इस कोड को आजमाएं।

if(employee.TypeOfWorks 
    .Count(f => f.Id != new Guid("11111111-1111-1111-1111-111111111111")) != 0) 
{ 
    //do something 
} 
1

कैसे

Guid guid = Guid.NewGuid("11111111-1111-1111-1111-111111111111"); 
var res = from p in employee.TypeOfWorks 
      where p.Id == guid 
      select p ; 

The problem is constructing the guid - otherwise the linq queries should work 
के बारे में
संबंधित मुद्दे