logType에 대해 고유 한 "logName"항목의 문자열 배열을 가져 오는 쿼리를 실행하고 싶습니다. 다음은 훌륭하게 작동합니다 :Linq 동적 선택 캐스팅 문제
Dim stringArray() As String = (From item In dc.Vw_Logs
Where item.LogType = [Passed in logType]
Select item.LogName Distinct).ToArray()
그러나 특정 LogType이 설정된 경우에만 작동합니다. logType 절이 선택적 이길 원합니다. 시도하고 내가 쿼리 재 작성 한이 달성하기
Value of type '1-dimensional array of Vw_Log' cannot be converted
to '1-dimensional array of String'
이 피해 갈 수있는 가장 좋은 방법은 무엇입니까 : 나는 다음과 같은 오류가이와
Dim q = From item In dc.Vw_Logs Distinct
If not logType is nothing Then
q = q.Where(Function(item) item.LogType = logType)
End If
q.Select(Function(item) item.LogName)
Dim stringArray() As String = q.ToArray()
를? 각 항목을 반복하여 캐스팅하지 않으려합니다.
도움을 주셔서 감사합니다.
logType (select 메소드에 전달됨)이 아무 것도 없으면 일치가 발생하지 않으므로 작동하지 않습니다 (이 경우 모든 일치를 원합니다.) – James
Jeremy는 논리를 잘못 읽었지만 근본적으로 정확합니다. Where 절은 그냥 있어야합니다 (logType은 Nothing 또는 item.LogType = logType) –
catch를 주셔서 감사합니다. – Jeremy