2010-11-30 7 views
1
public tblCustomerDetail GetCustomerDetailsByID(long ID) 
     { 
      var customer = from c in DataContext.GetTable<tblCustomerDetail>() where c.ID == ID select c; 
      return customer as tblCustomerDetail; 
     } 

DataContext.GetTable()에는 레코드가 있고 ID를 기반으로 필터링 한 후 고객 변수에 레코드가 없습니다. 검색중인 ID가있는 레코드가 반환됩니다. 표.Linq 쿼리가 레코드를 반환하지 않습니다.

도와주세요. 나는 LINQ를 처음 사용합니다.

답변

3

변수 고객의 유형은 IEnumerable<tblCustomerDetail>이므로 as 연산자를 사용하여이 변수를 형변환하면 형식이 호환되지 않기 때문에 결과가 null이됩니다.

대신을 시도해보십시오

public tblCustomerDetail GetCustomerDetailsByID(long ID) 
{ 
    var customer = from c in DataContext.GetTable<tblCustomerDetail>() where c.ID == ID select c; 
    return customer.First(); 
} 
+0

감사합니다 순전히. – teenup

+0

이것은 일반적으로 as 연산자를 피하기를 좋아하는 이유 중 하나입니다. 캐스트 예외는 null 참조 예외보다 즉각적이고 유익합니다. –

관련 문제