2017-09-15 8 views
0

어제부터이 문제에 대해 논쟁 중입니다. 다른 눈의 도움이 필요합니다.linq 참조 객체가 select 절에있는 객체의 인스턴스로 설정되지 않았습니다.

  int loanAppFundId = 0; 
      var loanAppDb = db.LoanApplications.FirstOrDefault(s => s.LoanId == vm.LoanId); 

      if (loanAppDb != null) 
      { 
       if (vm.FundID != null && loanAppDb.FundID !=0) 
       { 
        if (loanAppDb.FundID != vm.FundID) 
        { 
         string oldFund = "", newFund = ""; 
         loanAppFundId = loanAppDb.FundID; 

         var oFund = db.Funds.Where(s => s.FundID == loanAppFundId); 
        } 
       } 
      } 
내가 설정 한 경우를 제외하고는, 일이 어디가 loanAppFundId에 따라 펀드를 검색하기 위해 노력하고있어

마지막 줄은이 0 또는 어떤 문제없이 진행하지만, 다른 변수 나는 몇 가지 변수를 설정하려고 할 때마다 나는 오류가 발생했습니다.

목적으로 값이 0 인 변수 loanAppFundId를 초기화했지만 참조 객체가 객체의 인스턴스로 설정되지 않았다는 오류가 다시 발생합니다.

db.Funds.Where 쿼리에 더미 값을 설정하면 loanAppDb.FundID 값을 아무런 문제없이 얻을 수 있습니다.

내가 뭘 잘못하고 있니? null 또는 no 인 경우 여러 값을 검사합니다.

도와주세요. 사전에

감사합니다, Laziale의

편집 :

내가 실제 예제를 부탁 해요 이후이 하나가 중복되는 방법을 확실하지가 아닌 일반적인 질문입니다.

+0

만 당신은 당신의 자신의 프로그램을 디버깅과 예외가 발생 위치를 확인하고 스택 추적을 검사 할 수 있습니다. "다른 눈 세트"는 당신을 도울 수 없습니다. –

+0

코드의 첫 번째 줄에 예외가 발생합니다. int loanAppFundId = 0; – Laziale

+0

그건 불가능합니다. 그 전에 선이 틀림 없어. –

답변

0

loanAppDb이 null이 아니지만 loanAppDb.FundID이 null 인 경우에도 분명합니다. 이를 방지하기 위해 당신은 너무 널 위해 loanAppDb.FundID을 확인할 수 있습니다

if (vm.FundID != null && loanAppDb.FundID!= null && loanAppDb.FundID !=0) 
{ 
     //your magic 
} 
+0

동일한 출력 @Ashkan – Laziale

+0

Fyi, 기본적으로 테이블의 FundID 필드에 Null을 입력 할 수 없습니다. – Laziale