2010-09-16 8 views
24

मैंने सशर्त रूप से दो टेबल में शामिल होने का प्रयास किया था लेकिन यह मुझे वाक्यविन्यास त्रुटि दे रहा है। मैंने नेट में समाधान खोजने की कोशिश की लेकिन मुझे नहीं पता कि स्थिति के साथ सशर्त जुड़ाव कैसे किया जाए। एकमात्र अन्य विकल्प मूल्य को पहले एक टेबल से प्राप्त करना और फिर से एक प्रश्न बनाना है।लिंक में ग्रेटर थान कंडीशन

मैं सिर्फ पुष्टि करना चाहता हूं कि linq के साथ सशर्त जुड़ने का कोई अन्य तरीका है या नहीं।

यहां मेरा कोड है, मैं उन सभी स्थिति को खोजने की कोशिश कर रहा हूं जो मेरे बराबर या उससे कम हैं। असल में मैं अपने साथियों और अधीनस्थों को प्राप्त करना चाहता हूं। LINQ केवल equijoins का समर्थन करता है -

from e in entity.M_Employee 
join p in entity.M_Position on e.PostionId >= p.PositionId 
select p; 

उत्तर

36

आपको लगता है कि एक LINQ साथ जुड़ जाता है नहीं कर सकते। हालांकि, अगर आप यह कर सकते हैं:

var query = from e in entity.M_Employee 
      from p in entity.M_Position 
      where e.PostionId >= p.PositionId 
      select p; 

या एक से थोड़ा विकल्प नहीं बराबर दृष्टिकोण:

var query = entity.M_Employee 
        .SelectMany(e => entity.M_Position 
             .Where(p => e.PostionId >= p.PositionId)); 
+0

ओह। तो क्रॉस जॉइन काम कर सकते हैं ... धन्यवाद – Nap

2

के बाद:

from e in entity.M_Employee 
from p in entity.M_Position.Where(p => e.PostionId >= p.PositionId) 
select p; 

ठीक उसी एसक्यूएल आप के बाद कर रहे हैं उत्पादन करेगा (INNER JOIN Position P ON E..PostionId >= P.PositionId).

0
var currentDetails = from c in customers 
        group c by new { c.Name, c.Authed } into g 
        where g.Key.Authed == "True" 
        select g.OrderByDescending(t => t.EffectiveDate).First(); 

var currentAndUnauthorised = (from c in customers 
          join cd in currentDetails 
          on c.Name equals cd.Name 
          where c.EffectiveDate >= cd.EffectiveDate 
          select c).OrderBy(o => o.CoverId).ThenBy(o => o.EffectiveDate); 

यदि आपके पास प्राधिकरण स्थिति और प्रभावी तिथि सहित ऐतिहासिक विवरण परिवर्तनों की एक तालिका है। पहली क्वेरी प्रत्येक ग्राहक को वर्तमान विवरण पाती है और दूसरी क्वेरी तालिका में बाद में अनधिकृत विस्तार परिवर्तन जोड़ती है।

आशा है कि यह सहायक होगा क्योंकि मुझे कुछ समय लगा और भी पाने में मदद मिली।

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