2010-02-25 3 views
1

미안 아래의 코드입니다. Marca.Ativo == true ", ActiveRecord 템플릿에서 IQueryable이 아닌 하나의 수정을 수행했습니다. 내 데이터베이스의 외래 키를 기반으로 클래스 관계를 만드는 방법. 코드 키우면 확인에음속 3 외래 키는 여기에 내 데이터를 얻을 수 클래스에서 아음속으로 LINQ를 사용하여

public Marca Marca 
     { 
      get 
      { 

        var repo=OKMMySql.Marca.GetRepo(); 
        return (from items in repo.GetAll() 
         where items.ID_Marca == _ID_Marca 
         select items).SingleOrDefault(); 
      } 
     } 

하지만,이 선택 반환이 실행 시간 오류 :

The binary operator Equal is not defined for the types 'System.Nullable`1[System.Int32]' and 'System.Int32'.

누구나 어떤이

은 (생성) 템플릿에 수정 된 코드 내 생각에 도움이 될만한 아이디어가 있습니까?

많은 감사합니다.

답변

0

열 중 하나가 null로 표시 될 수 있습니다. 생성 된 클래스를 살펴보고 어떤 클래스인지 확인하거나 데이터베이스 스키마를 확인하십시오.

nullable 일 필요가없는 경우 열에서 제거하고 .tt 파일을 다시 실행하십시오. 이것은 나를 위해 작동

+0

을이 버그를 해결한다. Nullable 관계가 필요하면 문제가 여전히 존재합니다. –

+1

와우, 이전 댓글을 다시 방문하십시오. 물론 그것이 nullabe 일 필요가 있다면 그것은 여전히 ​​문제입니다. 그러므로 "만약 그것이 불의 할 필요가 없다". 그 시점에, 나는 해결책이 있다고 생각하지 않는다. ,하지만 분명히 지적 해 주셔서 감사합니다. –

+0

해결책은 아음속이 SQL 로의 변환을 얼마나 잘 처리하는지 모르기는하지만 (where items.ID_Marca! = null && items.ID_Marca.Value == _ID_Marca'와 비슷할 것입니다. 그다지 도움이되지 않는'ToList()'를 먼저 코드에 추가하십시오. –

0

앤드류,

난 그냥 데이터베이스에서 INT 필드에 NOTNULL FLAG를 넣어 키우면이는 해결책이 아니다 나를 위해

많은 감사