유형 변환이있는 Entity / Entity SQL에서 LINQ에서 MAX를 선택하십시오.
-
20-08-2019 - |
문제
레거시 데이터베이스에 대한 CRUD 기능을 만들고 엔티티 프레임 워크를 ORM 도구로 사용하려고합니다. 한 테이블 '사이트'에는 사용자가 보지 못하는 안내 유형 'ID'열이 있으며 사용자가 사이트를 정리하는 데 사용하는 정수 유형 'siteId'가 있습니다.
신은 숫자 SiteID 열이 데이터베이스에서 Varchar (10) 유형의 이유를 알고 있지만, 모든 SiteID에는 정수가 있으며 모든 SiteId는 정수가 될 것입니다.
새롭고 독창적 인 정수 유형 SiteId를 생성하기 위해 엔티티 SQL 또는 LINQ를 사용하여 효과적으로 'SELECT MAX (siteId)'를 효과적으로 수행 할 수 있습니까?
다시 말해, Varchar (10)에서 열의 모든 값을 int로 변환하고 해당 세트에서 최대 값을 선택할 수 있습니까 ??
이것은 유망한 것처럼 보였지만 LINQ는 구문 분석을 "매장 절차"로 변환 할 수 없습니다.
int x = entities.Sites.Max(s => int.Parse(s.SiteId));
해결책
캐스트 방법은 원시 유형에 대해 LINQ에서 엔티티에서 지원됩니다. 그것을 사용하십시오.
다른 팁
이건 작동 ...
String[] numbers = new String[] { "2", "34", "5", "23", "5", "1" };
var max = numbers.Max(x => Int32.Parse(x));
제휴하지 않습니다 StackOverflow