2013-08-07 4 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); 
} 

나는 나의 투사의 이름 인적 또는 연도와 이름 속성을 연결해야합니다.

나를주는 오류는 LINQ to Entities가 Join() 메서드를 인식하지 못하고 저장소 식으로 변환 할 수 없다는 내용의 "NotSupportedException"입니다. 당신은 당신이 쿼리의 임의의 .NET 방법을 사용할 수 없습니다 LINQ - 투 - 엔티티 사용하는 동안

+1

자세한 사항을 알려주십시오. –

+0

@ 아니요. 죄송합니다. 실제 오류로 답변을 업데이트했습니다. – 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

, 당신은 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 기능

을 사용할 수 있습니다 사용할 수 있습니다