2012-12-11 29 views
0

我試圖做一個簡單的JOINLINQ但出現錯誤LINQ錯誤的簡單連接 - 聯接子句中的表達式之一的類型不正確

the type of one of the expressions in the join clause is incorrect

CODE:

var select2 = from si in db.San_Imovel 
           join sic in db.San_Imovel_caracteristica  <--- ERROR 
           on si.Imovel_Id equals sic.Imovel_Id 
          where si.Credenciada_Id == credenciada_Id      
          select new 
          { 
           si.Celula_Id, 
           si.Credenciada_Id, 
           si.Imovel_Id, 
           si.NomeArquivo, 
           si.TipoDsc1, 
           si.BairroDsc1, 
           si.AreaRealPrivativa,         
           si.ValorImovel, 
           si.ValorCondominio, 
           si.ValorIPTU, 
           si.Lat2, 
           si.Lon2, 
           si.Bairro1, 
           si.NomeCidade, 
           si.Transacao_ID 
          }; 
+4

si.Imovel_Id&sic.Imovel_Id是相同的類型? – Novice

+2

si.Imovel_Id和sic.Imovel_Id的數據類型是什麼?請確保這兩列具有相同的數據類型,否則您將遇到您遇到的錯誤。 – Maritim

+0

'long'和'int?'類型。我會轉換類型,並在幾分鐘內我可以告訴你,如果工作正常。 –

回答

0

如果你的屬性有longint?類型,那麼你可以嘗試這個連接:

var select2 = from si in db.San_Imovel 
       join sic in db.San_Imovel_caracteristica 
          .Where(x => x.Imovel_Id.HasValue) 
       on si.Imovel_Id equals (long)sic.Imovel_Id.Value 
       where si.Credenciada_Id == credenciada_Id      
       select new { ... } 
相關問題