2016-12-08 20 views
-1

我需要連接4個字段並使用|分隔符顯示爲單個字段。我試過string.Concat()但它沒有工作。也嘗試使用string.Join()但無法使用它。如何在使用實體框架dbContext時連接多個字段?

var result = dbContext.MyEntity 
         .Where(me=> me.field1!= null && me.field2 != null) 
         .Select(me => new MyViewModelClass() 
             { 
              Field1 = me.field1, 
              Field2 = me.field2, 
              Field3 = me.field3, 
              Field4 = me.field4, 
              Field5 = me.field5, 
              Field6 = me.field6,  
              // I need to concatenate field3, field4, field 5, field 6 by "|" separator.     
              Field = string.Concat("|", me.field3, me.field4, me.field5, me.field6) 
             }); 
return result; 

有什麼建議嗎?

感謝,

+0

你能不能給我們您做了什麼錯誤訊息? – sovemp

+2

*它沒有工作*,*不能使用*。你已經出現了近6年,你仍然不知道如何充分描述問題? –

回答

0
var result= dbContext.MyEntity.Where(me=> me.field1!= null && me.field2 != null).Select(me=> 
     new MyViewModelClass() 
     { 
      Field1= me.field1, 
      Field2= me.field2, 
      Field3= me.field3, 
      Field4= me.field4, 
      Field5= me.field5, 
      Field6= me.field6,  

      //I need to concatenate field3, field4, field 5, field 6 by "|" separator.     

      Field= string.Concat("|",me.field3).Concat("|") 
          .Concat(field4).Concat("|") 
          .Concat(field5).Concat("|") 
          .Concat(field6) 

     }); 
    return result; 
1

UPDATE 請關注@ IronMan84曾建議是什麼,並應用.ToList()。另外,如果你想成爲更有效,你可以如果你使用的是C#6.0(.NET框架> = 4.6.1)使用的String.Format

Field = string.Format("{0}|{1}|{2}|{3}",me.field3,me.field4,me.field5,me.field6); 

,那麼你可以使用

Field = $("{me.field3}|{me.field4}|{me.field5}|{me.field6}"); 
3

您需要在WhereSelect子句之間添加.ToList(),以便LINQ將使用LINQ-to-Objects提供程序(可以使用C#字符串方法)而不是LINQ-to-Entities提供程序(它不能,因爲它試圖將其轉換爲SQL查詢)。然後

您的代碼會是這樣的:

var result = dbContext.MyEntity 
      .Where(me=> me.field1 != null && me.field2 != null) 
      .ToList() 
      .Select(me => 
       new MyViewModelClass() 
       { 
        Field1 = me.field1, 
        Field2 = me.field2, 
        Field3 = me.field3, 
        Field4 = me.field4, 
        Field5 = me.field5, 
        Field6 = me.field6,  
        Field = string.Concat("|", me.field3, me.field4, me.field5, me.field6) 
       } 
      ); 
相關問題