在LINQ中执行连接时键入错误

时间:2016-01-30 09:17:38

标签: c#

以下代码段的连接条件有什么问题?

var result = (from p in payments
              join pr in paymentobs on p.PaymentId equals pr.PaymentId 
          Error here --> join ar in accountobs on p.AccountId equals ar.TFLEXID                                
              select new                      
              {
                  PaymentId = ..........,
                  AgencyId = ..........,
                 ..........................
        ..........................
    });

错误是

  

join子句中某个表达式的类型不正确。呼叫'加入'

时,类型推断失败

1 个答案:

答案 0 :(得分:1)

这是因为您在equals表达式中使用的属性类型不匹配。

为了进行连接,equals表达式上的类型应匹配。话虽如此,p.AccountId的类型应与ar.TFLEXID的类型相匹配。如果不是这样,那么您就无法按原样进行连接。

可能的解决方法是,将equals表达式的一个成员转换为另一个成员的类型,如果可能的话。这是一种解决方法,只要这样做有意义。