2013-09-04 2 views
0
나는 다음과 같은 오류를 얻고있다

가 발생 .DesignSpec '다음 테스트 코드에잘못된 캐스트 예외

: 나는 분명히 올바른 옵션을하지 높고 낮은 검색 한 수많은 옵션을 시도했지만

Dim prodSku As String = "11037" 
Dim designSpec As DesignSpec = From row In dbLocal.DesignSpecs Where row.Name = prodSku Select row 

. 올바른 구문을 사용할 수 있도록 도움을 주시면 매우 감사하겠습니다.

친절하신 분께 감사드립니다.

추신 : 나는 이것이 약간 치즈 냄새가 나는 것을 알고있다. 그러나 이것은 나의 첫번째 지위 다. 나는 희망을 갖고 그것을 적절하게 게시했다. 믿을 수 없을만큼 도움이 된 많은 실을 따라 갔지만 평판 포인트가 없기 때문에 투표를 할 수 없었습니다! 이것이 충분히 좋은 질문이라면, 모든 사람들이 저에게 투표권을 행사하여 충분한 평판 포인트를 주면 다른 사람들의 도움을받을 수 있습니다. 다시 한 번 감사드립니다!

답변

2

Linq 쿼리는 컬렉션 (DesignSpec)을 반환하지만 단일 인스턴스에 할당하려고합니다.

단일 인스턴스를 추출하는 필터를 컬렉션에 적용해야합니다. 예 : Single(), SingleOrDefault(), First(), FirstOrDefault() 등이 있으며, 쿼리의 예상 출력을 기반으로하는 것이 가장 적합합니다.

Single 변형을 사용하면 쿼리가 두 개 이상의 인스턴스를 반환하는 경우 예외가 발생하지만 First 변형은 발견 된 첫 번째 인스턴스를 반환하기 때문에이 확인에 대처합니다.

+0

감사합니다. 귀하의 신속한 회신을 위해! 이것은 완벽하게 작동 : 희미한 prodSku으로 문자열 = "11037" 희미한 designSpec으로 DesignSpec = 나는 당신의 대답을 투표 할 수 을 .SingleOrDefault (row.Name = prodSku 선택 행이 dbLocal.DesignSpecs에서 행에서)하지만, 감사합니다 너 너무 많이! – HumbleBeginnings

1

아직 실제로 쿼리를 실행하지 않았습니다. 쿼리를 실행하는 방법에 대해 설명합니다.

  • FirstOrDefault() 매칭 소자 또는 널 (이것은 단지 하나 개의 정합 소자가 있음을 확인한다)를 호출하는 제 매칭 소자 또는 null
  • SingleOrDefault()를 반환 :

    실제로 질의 사용을 실행하는 방법. 예외는 제 매칭 소자를 반환 또는 예외를 발생하는

  • First()
  • 던져 될 하나 개 이상의 매칭 요소가 있으면 중에 발견 또는 이상시 것도 일치하는 요소를 반환 또는 예외를 발생하는
  • Single()
  • 발견되면 하나가 발견된다.
+0

정확합니다 ... 감사합니다! – HumbleBeginnings

관련 문제