LINQ

2012-05-30 14 views
7

में कहां के भीतर त्रुटि, जहां मेरे कहने में कुछ कारणों से "पहला नाम" अवसर इकाई में मौजूद नहीं है। लेकिन यह SystemUser इकाई के लिए सेट है। कोई विचार क्यों भ्रमित हो रहा है? धन्यवाद!LINQ

  var linqQuery = (from r in gServiceContext.CreateQuery("opportunity") 
          join c in gServiceContext.CreateQuery("account") on ((EntityReference)r["accountid"]).Id equals c["accountid"] 
          join u in gServiceContext.CreateQuery("systemuser") on ((EntityReference)r["ownerid"]).Id equals u["systemuserid"] 
          where r["new_leadstatus"].Equals("100000004") && u["lastname"].Equals(rsmLastName) && u["firstname"].Equals(rsmFirstName) 
          select new 
          { 
           AccountId = !r.Contains("accountid") ? string.Empty : r["accountid"], 
           Account = !r.Contains("name") ? string.Empty : r["name"] 
          }); 

उत्तर

10

सुनिश्चित करें कि आप प्रत्येक where क्लॉज को अपनी लाइन per Microsoft guidelines में रखें।

जहां खंड परिणाम के लिए एक फिल्टर लागू होता है, अक्सर एक बूलियन अभिव्यक्ति का उपयोग करते हुए। फ़िल्टर स्रोत अनुक्रम से को बाहर करने के लिए कौन से तत्व निर्दिष्ट करता है। प्रत्येक जहां खंड में केवल एक इकाई प्रकार के विरुद्ध स्थितियां हो सकती हैं। एक संयुक्त स्थिति एकाधिक इकाइयों को शामिल करना मान्य नहीं है। इसके बजाए, प्रत्येक इकाई को अलग में फ़िल्टर किया जाना चाहिए जहां खंड हैं।

var linqQuery = from r in gServiceContext.CreateQuery("opportunity") 
       join c in gServiceContext.CreateQuery("account") on ((EntityReference)r["accountid"]).Id equals c["accountid"] 
       join u in gServiceContext.CreateQuery("systemuser") on ((EntityReference)r["ownerid"]).Id equals u["systemuserid"] 
       where r["new_leadstatus"].Equals("100000004") 
       where u["lastname"].Equals(rsmLastName) && u["firstname"].Equals(rsmFirstName) 
       select new 
       { 
        AccountId = !r.Contains("accountid") ? string.Empty : r["accountid"], 
        Account = !r.Contains("name") ? string.Empty : r["name"] 
       }; 
+0

नहीं पता था कि आपके पास दो कहां हो सकते हैं। आकर्षण की तरह काम किया, धन्यवाद! –

+0

रोज़ाना कुछ नया सीखें। धन्यवाद @ पीटर –

+0

बस इस पर दीवार के खिलाफ मेरे सिर को टक्कर लगी कुछ घंटे बिताए। धन्यवाद। –

2

आप 'आर' के रूप में अवसर संस्था के लिए अपने संदर्भ को परिभाषित लेकिन के अंत से 'यू'

from r in gServiceContext.CreateQuery("opportunity") 

u["firstname"] 

बदलें firstname को पढ़ने के लिए कोशिश कर रहे हैं अपने जहां को

r["firstname"].Equals(rsmFirstName) 
+0

लेकिन मैं systemuser अवसर नहीं और अवसर से lnew_leadstatus से firstname जाँच करना चाहते हैं। –

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