웹 서비스에서 문자열로 GUID를 전달하려고하지만 도로에서 충돌이 발생했습니다. GUID는 UNIQUEIDENTIFIER
으로 SQL Server에 저장되며 EF는이를 GUID로 가져옵니다. 내가하고 싶은 것 것은 내 쿼리에있는 것은이 작업을 수행 : 이제GUID를 엔티티 프레임 워크로 문자열로 변환
var query = myEntities.Foo.Where(q => q.Id== Id)
.Select(bar =>
new Bar()
{ BString = bar.GUID }
);
을, C#을 사용하면 string
에 System.Guid
을 변환 할 수없는 빌드 오류가 발생합니다, 그래서 당신이 할 수 있다고 생각하는 것 :
{ BString = bar.GUID.ToString() }
을
또는
{ BString = Convert.ToString(bar.GUID) }
그러나 런타임을 제외하고 모두 끝 :
예외가있었습니다. System.NotSupportedException : LINQ to 엔터티가 'System.String ToString (System.Object)'메서드의 메서드를 인식하지 못하고이 메서드를 으로 변환 할 수 없습니다.
그래서 나는 두 경우 모두, 그것은 UniqueIdentifier
에서 varchar
에 갈의 T-SQL과 동등한를 알아낼 수 아니에요 수집합니다.
개체를 검색하는 것 외에 다른 방법으로 각 개체를 새 개체에 복사하고 그 시점에서 guid-> 문자열을 변환하는 방법이 있습니까?
감사합니다.
해결 방법이 있습니다. 막대 유형에 Guid를 문자열로 반환하는 속성을 사용하고 Linq 쿼리에서이 속성을 사용하십시오. – Beatles1692
람다 명령문이 실행 된 후 쿼리의 값은 무엇입니까? – MethodMan