LINQ to Entities 쿼리에서 정수를 문자열로 변환: 문제 해결 및 솔루션
LINQ to Entities 쿼리에서 정수를 문자열로 변환하려고 하면 오류가 발생할 수 있습니다. 이 문제는 주로 암시적 유형 변환이 지원되지 않기 때문에 발생합니다.
첫 번째 코드 조각:
<code class="language-csharp">var items = from c in contacts select new ListItem { Value = c.ContactId, //无法将类型“int”(ContactId)隐式转换为类型“string”(Value)。 Text = c.Name };</code>
정수 ContactId를 문자열 Value로 암시적으로 변환할 수 없기 때문에 컴파일러는 오류를 발생시킵니다.
LINQ to Entities에서 ToString()을 사용하여 정수를 문자열로 명시적으로 변환하는 것도 실패합니다.
<code class="language-csharp">var items = from c in contacts select new ListItem { Value = c.ContactId.ToString(), //抛出异常:ToString 在 linq to entities 中不受支持。 Text = c.Name };</code>
해결책:
이 문제를 해결하려면 EF v4의 SqlFunctions.StringConvert 함수를 사용할 수 있습니다. 그러나 정수에는 오버로드가 없으므로 먼저 배정밀도 부동 소수점 또는 소수로 변환할 수 있습니다.
<code class="language-csharp">var items = from c in contacts select new ListItem { Value = SqlFunctions.StringConvert((double)c.ContactId).Trim(), Text = c.Name };</code>
이 메서드는 정수 ContactId를 문자열로 성공적으로 변환하고 LINQ to Entities 쿼리를 진행할 수 있게 해줍니다.
위 내용은 int로 linq로 문자열로 변환하는 방법은 엔티티 쿼리로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!