2012-04-19 98 views
10

我是新來的LINQ和lambda表達式那些正在出現棘手我:(連接兩個列的值

我那裏有兩列。FIRST_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 

我該如何通過lambda表達式來實現?

+1

在SQL中,您通常應該使用''''表示包含空格的字符串,而不是'「」'。 – 2012-04-19 09:26:31

+0

哇,如果一切都那麼簡單 – Habib 2012-04-19 09:27:13

+0

aslo看看:http://pranayamr.blogspot.ca/2010/12/sql-to-linq-visual-representation.html可能會幫助你獲得更多關於linq – 2012-04-19 09:47:24

回答

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

謝謝大家,所有的解決方案工作正常。我希望我能標記所有這些是正確的,但我只能標記一個:( – 2012-04-19 09:31:28

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
的.Net提供了可以直接映射到查詢許多方法ULL不得不使用其中的一個添加兩個字符串
這樣一個u可以使用的

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).Select(s => new {FullName = First_Name +「」+ Last_Name,Email_ID,GUID});'爲我工作,我需要將FullName作爲字段添加 – 2017-04-26 07:03:04