2013-02-04 22 views
7

का उपयोग कर SQL डेटाबेस से छोड़कर जाओ मैं इससभी इकाई की रूपरेखा

var r = db.Products.Where(x => x.Sites 
           .Where(z => z.Key == associatedProducts.Key) 
           .Any() 
       ).ToList() 

जैसे उत्पादों की एक सूची वहाँ है एक इकाई बुलाया उत्पाद है, मैं उन्हें छोड़कर उत्पादों से सभी तत्वों को प्राप्त करना चाहते हैं associatedProducts.Products

में मौजूद

मैं यह कैसे कर सकता हूं?

+0

क्या आप संबंधित उत्पाद बनाने से संबंधित कोड दिखा सकते हैं? – daryal

उत्तर

14

निम्न क्वेरी काम करता है associatedProducts सूची एक previos क्वेरी में एफई का उपयोग कर प्राप्त किया गया है।

var temp = db.Products.ToList().Except(associatedProducts).ToList(); 

अन्यथा, अगर associatedProducts एक सूची है जो है एफई का उपयोग कर लाया नहीं किया गया है (यह मानते हुए Key एक पूर्णांक है);

List<int> tempIdList = associatedProducts.Select(q => q.Key).ToList(); 
var temp = db.Products.Where(q => !tempIdList.Contains(q.Key)); 
+0

ब्रिलियंट दूसरा विकल्प काम किया! धन्यवाद –

+0

@ मोहम्मद नगुइब खुश है कि यह काम करता है। – daryal

-3

आप उन उत्पादों की सूची लोड कर सकते हैं जिन्हें आप बाहर करना चाहते हैं, और फिर .Exclude() सभी उत्पादों की सूची से।

+2

-1 मुझे कहीं भी 'बहिष्कृत' नहीं मिला। –

0
  var query = from p in db.Products 
         where !(from a in associatedProducts.Products 
           select a.Products) 
           .Contains(p.Key) 
         select p; 

मैंने क्वेरी का परीक्षण नहीं किया, लेकिन यह इस तरह दिखना चाहिए।

आप आप कैसे उपयोग कर सकते हैं LINQ में "नहीं में" पर एक नजर है चाहिए:
How would you do a "not in" query with LINQ?

संबंधित मुद्दे