2012-04-19 33 views
10

Tôi mới vào LINQ và những lambdas đang xuất hiện khó khăn đối với tôi :(CONCATENATE hai giá trị cột trong LINQ Lambda biểu

Tôi có một bảng nơi có hai cột. FIRST_NAME và LAST_NAME. Tôi Populating một GridView sử dụng 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();        
    } 

tôi có thể lấy các giá trị sử dụng LINQ nhưng tôi muốn nối tên đầu tiên và tên cuối cùng với một không gian ở giữa.

truy vấn SQL tương đương những gì tôi đang cố gắng để acchieve sẽ như thế nào điều này:

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

Làm cách nào để đạt được điều này thông qua biểu thức lambda?

+1

Trong SQL, bạn thường nên sử dụng '''' để có nghĩa là một chuỗi chứa một dấu cách., Không phải là '" "'. –

+0

wow, nếu tất cả đều dễ dàng như vậy – Habib

+0

aslo đã tìm đến: http://pranayamr.blogspot.ca/2010/12/sql-to-linq-visual-representation.html có thể giúp bạn để có thêm thông tin về linq –

Trả lời

14

Bạn có thể sử dụng dây nối:

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

Hãy thử

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

Cảm ơn mọi người, mọi giải pháp đều hoạt động tốt. Tôi ước tôi có thể đánh dấu tất cả chúng là chính xác nhưng tôi chỉ có thể đánh dấu một trong số đó: ( –

1

Bạn nên cung cấp cho bạn anonymous type 'phím' (các thuộc tính read-only):

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

Và sau đó chỉ cần nối chuỗi trên gán tên người dùng.

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

có một cái nhìn tại này CLR Method to Canonical Function Mapping
Net cung cấp nhiều phương pháp có thể được ánh xạ trực tiếp đến các truy vấn ULL phải sử dụng một trong số họ để thêm hai chuỗi
vì vậy người ta rằng u có thể sử dụng là

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

Dưới đây là một biến thể mà làm việc và chưa được liệt kê:

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}); 'đã làm việc cho tôi. Tôi cần thêm FullName làm Field –

Các vấn đề liên quan