2014-04-06 4 views
9

की सूची से मेल खाते हैं, क्या नीचे मेरी क्वेरी को बदलना संभव है, ताकि यह types सूची को किसी प्रकार की क्वेरी के भीतर उपयोग कर सके।लिंक चुनिंदा रिकॉर्ड जो आईडी

होने के बजाय:

List<int> types = new List<int> { 9, 15, 16 }; 
var cust = db.Customers.Where(x => types.contains(x.type_id).ToList(); 

(type_id प्राथमिक कुंजी नहीं है):

var cust = db.Customers.Where(x => x.type_id==9 || x.type_id==15 || x.type_id==16).ToList(); 

... मैं की तरह कुछ होगा।

धन्यवाद,

मार्क

+0

तुम ठीक कह रहे । बस 'शामिल' के बजाय 'युक्त' का उपयोग करें – Azim

+0

http://www.codeducky.org/sql-queries-in-linq/#where एक ब्लॉग पोस्ट है जो सामान्य SQL क्वेरी को LINQ में अनुवाद करता है। इसमें 'WHERE IN' और अन्य सामान्य SQL क्वेरी के लिए एक उदाहरण है। –

उत्तर

16

हाँ, विधि List<T>.Contains ऑपरेटर में एसक्यूएल में अनुवाद किया जाएगा:

var cust = db.Customers.Where(x => types.Contains(x.type_id)).ToList(); 

जनरेट किया क्वेरी तरह दिखेगा:

SELECT * FROM Customers 
WHERE type_id IN (@p0, @p1, @p2) 
+1

धन्यवाद @ सर्गेई-बेरेज़ोवस्कीय - पूरी तरह से काम किया! चीयर्स, मार्क – Mark

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