2016-07-28 3 views
0

는이 코드가 일치하지 않습니다. enter image description hereLinq에 개폐 괄호

Visual Studio를 다시 시작하려고했지만 동일합니다.

+0

그게 다 이상한 외모! – user3185569

+0

'r.Company.Contains (Company)'와'Mobile.Contains (rd.Mobile)'사이에 연산자가 없습니다. 더 일반적으로, 이것은 완전히 읽을 수 없습니다 - 무엇이 잘못되었는지를 아는 것은 매우 어렵습니다. –

+0

잘 어디에 문제가 있습니까? 여는 괄호와 닫는 괄호가 일치하지 않는다고 말씀하십니까? –

답변

3

r.Company.Contains(Company)Mobile.Contains(rd.Mobile) 사이에 누락 된 ||을 추가해보세요.

들여 쓰기를 수정하면 무엇이 잘못되었는지 쉽게 알 수 있습니다. 내가 들여 쓰기를 할 때 누락 된 조작원이 아픈 엄지 손가락처럼 튀어 나오고, 괄호가 어떻게 작동하는지 쉽게 볼 수 있습니다.

using (Entities db = new Entities()) 
{ 
    refer = db.Refferals.Where(r => 
     r.RefferalDetails.Any(rd => 
      (
       Name.Contains(rd.Name) 
       || rd.Name.Contains(Name) 
       || LastName.Contains(rd.LastName) 
       || rd.LastName.Contains(LastName) 
       || Company.Contains(r.Company) 
       || r.Company.Contains(Company) 

       || /* <-- ADDED OR OPERATOR HERE */ 
        Mobile.Contains(rd.Mobile) 

       || rd.Mobile.Contains(Mobile) 
      ) 
     ) 
     && Mobile.Length > 9 
     && Name.Length > 1 
     && LastName.Length > 1 
     && Company.Length > 2 
    ).ToArray(); 
} 
1

그것은 실종 한 ** || 당신이 단항 선택 (RD)의 일종을 보인다 ** 코드를 실행하지 않고

refer = db.Refferals.Where 
       (
        r => r.RefferalDetails.Any 
        (
         rd => 
          (
           Name.Contains(rd.Name) || rd.Name.Contains(Name) || LastName.Contains(rd.LastName) || rd.LastName.Contains(LastName) 
            || Company.Contains(r.Company) || r.Company.Contains(Company) 
              || Mobile.Contains(rd.Mobile) || rd.Mobile.Contains(Mobile) 
          ) 
        ) 
        && Mobile.Length > 9 && Name.Length > 1 && LastName.Length > 1 && Company.Length > 2 
       ).ToArray(); 
0

Mobile.Contains (rd.Mobile) 전에. 내가 당신의 코드를 리팩터링을 시작하고 각 조건을 탈출하는 것이 좋습니다 ...