2014-02-27 3 views
0

안녕하세요, MySQL에서 LINQ to SQL 작업을 사용하여 DB에서 String으로 변환합니다. toString()은 MySql에서 지원되지 않으며 오류가 발생합니다.MySql Linq에서 SQL 변환 int to

var data = (from o in ObjectContext.MyTable.Where(d => d.a == a) 
           select new MyObject 
           { 
            Id = o.Id, 
            StringProperty = o.intColumn.ToString() 
           }); 

MySQL에서는 SqlFunction 클래스가 지원되지 않습니다.

+0

ToString() (자본 T) – Lev

답변

1

당신은 Enumerable에서의 결과를 변환하려고 한 다음에 조회 할 수 있습니다하여 변환 한 후, 처음으로 가져

var data = (from o in ObjectContext.MyTable.AsEnumerable().Where(d => d.a == a) 
           select new MyObject 
           { 
            Id = o.Id, 
            StringProperty = o.intColumn.ToString() 
           }); 
+0

이 작동하지만 테이블의 모든 데이터는 (인출) 열거됩니다. 많은 데이터가있는 경우 좋지 않을 수 있습니다. – Kjartan

0

당신은 테이블에 AsEnumerable()을 추가하여 모든 데이터를 가져올 수있다, 또는 당신이 할 수있는 , 또는

var tempData = (from o in ObjectContext.Where(d => d.a == a) select o); 

var converted = (from o in tempData.AsEnumerable() 
       select new MyObject 
          { 
           Id = o.Id, 
           StringProperty = o.intColumn.ToString() 
          }); 

하위 쿼리로 첫 부분을 사용하여 한 번에 모든 것을 쓰기 : - 나중에 내가 잘못 아니에요 경우이 약간 가벼운 SQL 호출을 생성한다

var data = from x in 
        (from o in ObjectContext.Where(d => d.a == a) select o) 
        .AsEnumerable() 
      select new MyObject 
          { 
           Id = x.Id, 
           StringProperty = x.intColumn.ToString() 
          }); 
0

int to string in Entity Framework 또한 참조 할 수있는 훌륭한 솔루션을 지원했습니다. 이 방법으로 소스를 다음과 같이 변경할 수 있습니다. 내가 잘못 아니에요 경우, 여기

var data = (from o in ObjectContext.MyTable.Where(d => d.a == a) 
          select new MyObject 
          { 
           Id = o.Id, 
           StringProperty = SqlFunctions.StringConvert((double)o.intColumn) 
          });