2013-08-07 49 views
0

如何在投影中連接兩個字符串?投影中的Concat字符串(Linq)

這是我到目前爲止有:

IEnumerable<NameIdentity> data = null; 
JsonResult res; 
using (DBContext _db = new DBContext()) 
{ 
     data = MyEntity.GetEntities(_db).OrderBy(a=> a.name) 
        .Select(b=> new NameIdentity 
        { 
         ID = b.entityID, 
         Name = String.Join(" - ", new String[]{ b.year, b.name }) 
        }); 
     res = Json(data.ToList(), JsonRequestBehavior.AllowGet); 
} 

我需要在我的投影的名稱歡迎使用屬性來串聯年和name屬性。

給我的錯誤是一個「NotSupportedException」,它表示LINQ to Entities不能識別de Join()方法,並且它不能轉換爲存儲表達式。

+1

更多詳情請參閱? –

+0

@ It'sNotALie。對不起,我更新了我的答案與真正的錯誤。 – amp

回答

1
data = MyEntity.GetEntities(_db).OrderBy(a=> a.name) 
       .Select(b=> new NameIdentity 
       { 
        ID = b.entityID, 
        Name = b.year +"-" + b.name 
       }); 
+0

這是我第一次嘗試,它不工作。現在我嘗試了另一次,它工作...我不知道爲什麼... – amp

1

當您使用LINQ到實體不能使用查詢任意.NET方法,您可以使用EdmFunctions,這裏我使用EdmFunctions.Concat

data = MyEntity.GetEntities(_db).OrderBy(a=> a.name) 
      .Select(b=> new NameIdentity 
      { 
       ID = b.entityID, 
       Name = EdmFunctions.Concat(b.year, "-", b.name) 
      }); 

您還可以使用Canonical功能