2009-08-07 7 views
0
private Incident incident = null; 

incident = (Incident)(rdc.Incidents.Where(i => i.ID == ID)); 

을받을 수 있나요 .사건'.이유는'InvalidCastException이 '나는 다음과 같은 예외가

나는 이런 식으로 그것을 사용하는 사건의 인스턴스가 필요합니다

IList listInjury = ((IListSource)incident.Incident_Injuries.OrderBy(m => m.Employee.LastName)).GetList(); 

답변

5

시도 :

incident = rdc.Incidents.First(i => i.ID == ID); 
+0

감사합니다. 그것은 의미 있고 일했습니다. –

4

를 Where 만에, 아마 특정 경우에 (복수의 결과를 반환 할 수 있습니다 방법 일반적인 경우), 따라서 Mehrdad와 같은 First 메서드로 첫 번째 (아마도 유일한 결과)를 얻어야합니다.

+0

설명해 주셔서 감사합니다. –

1

코드

(Incident)(rdc.Incidents.Where(i =>i.ID == ID)) 

은 시퀀스 IEnumerable<Incident>을 반환하고 해당 유형을 인시던트 유형으로 캐스팅하려고합니다. 이러한 유형이 호환되지 않기 때문에 InvalidCastException이 발생합니다. Mehrdad가 제안했듯이, First를 사용할 수 있습니다. 그러나 시퀀스에 요소가 포함되어 있지 않으면 First는 예외를 throw합니다. 이것은 바람직하지 않을 수도 있습니다. 예외가 바람직하지 않은 경우, 시퀀스에 요소가없는 경우 해당 유형의 기본값을 반환하는 DefaultOrEmpty를 호출 할 수 있습니다. 인시던트가 참조 유형 인 경우 기본값은 null이되며 코드에 null 체크를 추가하고 해당 사례를 적절하게 처리해야합니다.