2014-01-07 2 views
1

문자열에서 선행 0을 제거해야합니다. 엔티티 쿼리에 linq에서 TrimStart('0')을 사용하려고하는데 지원되지 않습니다. this related question을 찾았지만 그 해결책은 나에게 효과가 없었습니다. 기능이 지원되지 않는다고 말합니다. 어떤 제안? 감사!엔티티에 linq 인 문자열의 선행 문자를 제거하십시오.

업데이트 :는 SQL Server와이 내가 그것을 사용하는 방법입니다 사용 ...

Where(c => c.StringToGet.Substring(SqlFunctions.PatIndex("%[^0]%", c.StringToGet).Value - 1) == stringToCompare) 

오류 ... 방법을 인식하지 못하는 엔티티에 LINQ 'System.Nullable`1 [선택 System.Int32] PATINDEX (System.String, System.String) '메서드를 사용하고이 메서드는 저장소 식으로 변환 할 수 없습니다.

+0

어떤 데이터베이스를 사용하십니까? 'SqlFunctions.PatIndex'를 사용하고 _how_를 사용한다면 정확한 에러는 무엇입니까? – CodeCaster

+0

글쎄, 클라이언트 측에서 앞에 0을 붙이면 로컬로 트림해야합니다. 다른 옵션은 클래스에 끌어다 놓기 만하면 trimleadingzer 메서드를 추가하는 것입니다. –

답변

-1

먼저 ToList() 쿼리를 수행하십시오. 그런 다음 더 이상 SQL 작업이 아니므로 Trim을 사용할 수 있습니다.

+2

'TRIM()'이'WHERE' 절에서 사용될 예정이라면이 명령문은 클라이언트에서 전체 테이블과 필터를 다운로드하기 때문에 원하지 않습니다. – CodeCaster

+1

네, 이상하게도 데이터베이스 측에서이 작업을 수행 할 것입니다. – Evan

관련 문제