C# 简单联接中的LINQ错误-联接子句中某个表达式的类型不正确

C# 简单联接中的LINQ错误-联接子句中某个表达式的类型不正确,c#,linq,C#,Linq,我正在尝试使用LINQ执行一个简单的JOIN,但出现了错误 join子句中某个表达式的类型不正确 代码: var select2 = from si in db.San_Imovel join sic in db.San_Imovel_caracteristica <--- ERROR on si.Imovel_Id equals sic.Imovel_Id

我正在尝试使用
LINQ
执行一个简单的
JOIN
,但出现了错误

join子句中某个表达式的类型不正确

代码:

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
                             };
var select2=来自si,单位为db.San_Imovel

在db.San_Imovel_caracteristica中加入sic如果您的属性具有
long
int?
类型,则可以尝试此加入:

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 { ... }

si.Imovel_Id和sic.Imovel_Id属于同一类型?si.Imovel_Id和sic.Imovel_Id的数据类型是什么?请确保这两列的数据类型相同,否则您将遇到错误。
long
int?
类型。我将转换类型,几分钟后我可以告诉您是否工作正常。