2012-04-19 14 views
10

मैं LinQ लिए नया हूँ और उन lambdas मेरे लिए मुश्किल दिखाई दे रहे हैं :(LinQ लैम्ब्डा अभिव्यक्ति में जुटना दो स्तंभ मान

मैं एक मेज जहां दो कॉलम। FIRST_NAME और LAST_NAME। मैं एक gridview का उपयोग कर पॉप्युलेट कर रहा हूँ देखते हैं है LinQ।

protected void Page_Load(object sender, EventArgs e) 
    { 
     myLinQtoSQLClassDataContext objDataContext = new myLinQtoSQLClassDataContext(); 

     var allUserList = from CurrentUser in objDataContext.Users.Where(c => c.Is_Deleted != false)        
          select new 
          { 
           CurrentUser.First_Name, 
           CurrentUser.Last_Name, 
           CurrentUser.Email_ID, 
           CurrentUser.GUID 
          }; 

     GridView1.DataSource = allUserList; 
     GridView1.DataBind();        
    } 

मैं LINQ का उपयोग कर मूल्यों प्राप्त कर सकते हैं, लेकिन मैं बीच में एक स्थान के साथ प्रथम नाम और अंतिम नाम श्रेणीबद्ध करना चाहते हैं।

बराबर SQL क्वेरी क्या मैं acchieve करना होगा कोशिश कर रहा हूँ यह:

Select First_name + ' ' + Last Name as Username, Email_ID, GUID 
From tbl_Users where Is_Deleted != false 

मैं लैम्ब्डा अभिव्यक्ति के माध्यम से इसे कैसे प्राप्त कर सकता हूं?

+1

एसक्यूएल में आपको सामान्य रूप से '' 'का उपयोग करना चाहिए जिसमें एक स्ट्रिंग वाला स्ट्रिंग है, न कि '' "। –

+0

वाह, अगर यह सब आसान था – Habib

+0

जैसा कि मैंने देखा है: http://pranayamr.blogspot.ca/2010/12/sql-to-linq-visual-representation.html आपको linq –

उत्तर

14

आप स्ट्रिंग संयोजन का उपयोग कर सकते हैं:

select new 
{ 
    Username = CurrentUser.First_Name + " " + CurrentUser.Last_Name, 
    CurrentUser.Email_ID, 
    CurrentUser.GUID 
}; 
4

 select new 
      { 
          FullName = CurrentUser.First_Name + " " + CurrentUser.Last_Name, 
          CurrentUser.Email_ID, 
          CurrentUser.GUID 
      }; 
+0

सभी को धन्यवाद, सभी समाधान ठीक काम करते हैं। काश मैं उन सभी को सही के रूप में चिह्नित कर सकता हूं लेकिन मैं केवल एक को चिह्नित कर सकता हूं :( –

1

प्रयास करें आप अपने anonymous type 'कुंजी' (केवल पढ़ने के लिए गुण) देना चाहिए:

select new 
{ 
    Name = CurrentUser.First_Name + " " + CurrentUser.Last_Name, 
}; 

और फिर बस उपयोगकर्ता नाम असाइन करने पर स्ट्रिंग को संयोजित करें।

2
var allUserList = from CurrentUser in objDataContext.Users.Where(c => c.Is_Deleted != false)        
        select new 
        { 
         Name = CurrentUser.First_Name + " " + CurrentUser.Last_Name, 
         CurrentUser.Email_ID, 
         CurrentUser.GUID 
        }; 
1

इस CLR Method to Canonical Function Mapping
नेट पर एक नजर है कई तरीके है कि सीधे प्रश्नों का मैप किया जा सकता प्रदान करता है दो तार
जोड़ने के लिए उनमें से एक का उपयोग करने के ull तो एक ही है कि यू उपयोग कर सकते हैं

है
select new 
{ 
    Username = Concat(first_Name,Last_Name), 
    CurrentUser.Email_ID, 
    CurrentUser.GUID 
}; 
0

यहाँ एक और भिन्नता है कि काम करता है और सूचीबद्ध नहीं किया गया है:

var allUserList = objDataContext.Users.Where(c => c.Is_Deleted != false). 
    Select(s => new{First_Name + " " + Last_Name, Email_ID, GUID}); 
+1

'var allUserList = objDataContext.Users.Where (c => c.Is_Deleted! = False)। चयन करें (एस => नया {FullName = First_Name + "" + Last_Name, ईमेल_आईडी, GUID}); 'मेरे लिए काम किया। मुझे फ़ील्ड के रूप में फुलनाम जोड़ने की ज़रूरत है –

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