1

실행하면 InvalidOperationException이 발생합니다 ("특성 이름을 확인할 수 없음"). 나는 그물을 점검했지만 해결책을 찾지 못했습니다. foreach (연락처의 var c) 행에서 발생합니다.Datacontext를 사용하는 InvalidOperationException

DataContext ctx = new DataContext("CrmConnection"); 

     var contacts = from c in ctx.contacts 
         where c != null 
         select new 
         { 
          acct = c.parentcustomerid == null ? "" : c.parentcustomerid.name, 
          last = c.lastname == null ? "" : c.lastname, 
          first = c.firstname == null ? "" : c.firstname 
         }; 

     List<string> lines = new List<string>(); 

     try 
     { 
      foreach (var c in contacts) *ex* 
      { 
       Console.WriteLine(c.acct); 
       Console.ReadLine(); 
       lines.Add(string.Format("{0}\t{1}\t{2}", c.acct, c.last, c.first)); 
       Console.WriteLine(c.acct); 
      } 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(String.Format("Error: {0}", ex)); 
     } 

아이디어가 있으면 알려주세요. 고맙습니다.

+0

'* ex *'란 무엇입니까? – devuxer

+0

정확한 오류 메시지가 표시 되나요? 더 이상 표시되지 않습니까? – Matt

+0

* ex * 내가 추가 한 내용입니다. – Paul

답변

0

나는 c.parentcustomerid가 관련된 객체의 ID라고 생각합니다. 액세스하려는 이름이라는 속성이 없습니다.

"parentcustomerid"가 가리키는 실제 고객 오브젝트에 액세스하려면 부모 고객의 이름을 가져오고 싶습니다.

당신이 원하는 것은 당신이 쿼리합니다 (ACCT 속성에서 추측) 계정 ID가 다음 단지,이 예외는 실행에 발생

acct = c.parentcustomerid == null ? "" : c.parentcustomerid 
+0

parentcustomerid하지 않습니다)에 의한 문자 제한에 차단 문제 인 것처럼 보입니다. 내가 c.address1_city 대신에 (내가 datacontext에 대해 과거에 일한 것을 알고), 나는 같은 오류를 얻는다. – Paul

+0

db 및/또는 매핑 코드의 실제 스키마를 게시 할 수 있습니까? Reza가 언급했듯이 예외가 반복 될 때까지 쿼리가 실행되지 않기 때문에 foreach에서 예외가 발생합니다 ... 실제 문제가 쿼리에 있습니다 (C# 클래스에서 db 로의 매핑이 올바르지 않음) – Jaime

0

연락처에 때 반복 처리를

acct = c.parentcustomerid == null ? "" : c.parentcustomerid.name 

을 변경하는 경우 컨텍스트 sql에서 쿼리를 실행 해보십시오. 컨텍스트 모델이 데이터베이스에 올바르게 매핑되지 않았기 때문에이 오류가 발생했다고 생각합니다. 다른 테이블 이름 또는 속성 일 수 있습니다.

+0

I 당신이 맞을지도 모른다고 생각합니다. 다른 함수의 코드에서 사용 된 동일한 연결 문자열 ('DataContext ctx = new DataContext ("CrmConnection");')을 사용하고 있기 때문에 단지 이상합니다. 일했다 .. – Paul

0
where c != null 

이 문제입니다. 어떤 필드에서 null을 확인합니까 c.parentcustomerid !=null? 엔티티에 대해 Null 검사를 수행 할 수 없습니다.

또한 name 속성 off ID는 LINQ to Crm을 사용하는 조회에서 작동합니다.

관련 문제