LINQ to Entities 쿼리에서 정수를 문자열로 변환할 때 발생하는 함정
LINQ to Entities에서 정수를 문자열로 변환하면 예상치 못한 문제가 발생할 수 있습니다. 이는 정수 속성(예: ContactId)을 새 개체의 문자열 속성 값에 매핑하려고 할 때 특히 두드러집니다.
일반적인 방법과 한계
c.ContactId를 Value에 직접 할당하는 첫 번째 방법에서는 "'int' 유형을 'string'으로 암시적으로 변환할 수 없습니다."라는 오류가 발생합니다.
c.ContactId.ToString()을 사용하는 두 번째 방법은 "ToString은 LINQ to Entities에서 지원되지 않습니다."라는 또 다른 장애물에 직면합니다. 이는 ToString이 LINQ 엔터티가 아닌 CLR 개체에서 작동하는 메서드이기 때문입니다.
SqlFunctions를 사용한 우아한 솔루션
EF(Entity Framework) 4.0 이상에서는 SqlFunctions.StringConvert 메서드를 해결 방법으로 사용할 수 있습니다. 그러나 정수에는 오버로드가 없으므로 정수를 double 또는 십진수로 변환해야 합니다.
<code class="language-csharp">var items = from c in contacts select new ListItem { Value = SqlFunctions.StringConvert((double)c.ContactId).Trim(), Text = c.Name };</code>
이 솔루션은 LINQ 식에서 정수를 문자열로 효과적으로 변환하므로 ContactId를 Value 속성에 원활하게 매핑할 수 있습니다.
위 내용은 LINQ to Entities 쿼리에서 정수를 문자열로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!