2016-07-28 18 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

これは、コードを実行せずにMobile.Contains(rd.Mobile)

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

前に** || ** 1を欠けている、あなたが単項の選択(RD)のいくつかの種類を行うようです。私はあなたのコードをリファクタリングし、各条件を分割することをお勧めします...

関連する問題