2014-04-15 3 views
2

여기에 간단한 linq가 반환되는 엔티티 쿼리는 anonymous type입니다. 문제는 int? 값 중 하나가 다른 값인 int을 얻기 위해 매개 변수처럼 사용된다는 것입니다.linq 쿼리에서 nullable int를 int로 변환합니다. 익명 유형을 반환합니다.

내가 아는 모든 방법이 작동하지 않습니다. 이 문제를 해결하는 방법을 알려주십시오.

+2

를 참조 null도 가능 문제? –

+1

코드에서 영어 이외의 문자를 사용하지 마십시오. – AgentFire

+1

'db.Адреса'등은 자체적으로 실수를 저질렀습니다. – AgentFire

답변

5

먼저 '='이 (가) equals 연산자에 없습니다. 그런 다음 int를 int와 비교하려면? Null Coalescing 연산자를 사용할 수 있습니까? 널의 경우 에 대한 기본값을 제공하기 위해, 다음의 int에 캐스팅 : 당신은 널 (NULL)의 INT에 값이 있는지 경우

h.Kod == (a.KodH ?? 0) 
+1

명시 적으로'int'로 캐스팅 할 필요가 없습니다. –

+0

@LuisFilipe 올바른데, 나는 게시물을 편집했습니다. – Hannes

+0

여전히 동일한 오류입니다. int를 boolean으로 변환 할 수 없습니다. –

2

결함이있는 라인이

  • 을 읽어야
    • 또는 경우

    from h in db.Адреса where h.Kod = a.KodH.Value select h.NameC).FirstOrDefault() 널 (NULL)은 nullable 형식 작업에 대한 자세한 내용은 기본 값

from h in db.Адреса where h.Kod = (a.KodH ?? -1) select h.NameC).FirstOrDefault()

- 또는

from h in db.Адреса where a.KodH!= null && h.Kod= a.KodH.Value select h.NameC).FirstOrDefault()

을 사용하여 선이되는 MSDN Documentation