Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 林奇';join子句中某个表达式的类型不正确';_C#_Linq To Sql - Fatal编程技术网

C# 林奇';join子句中某个表达式的类型不正确';

C# 林奇';join子句中某个表达式的类型不正确';,c#,linq-to-sql,C#,Linq To Sql,我有一个复杂的LINQ to SQL查询,它连接到两个表上-一个非常简单,工作正常,但另一个相当复杂,我发现join子句中一个表达式的类型不正确。调用“GroupJoin”时类型推断失败 这是一个相当长的问题,我做了一项关于互联网接入的工作,所以我想我应该看看这句话是否足够: join consignments in dc.Consignments .FirstOrDefault(x => x.TripDate > dateFrom && x.Tri

我有一个复杂的LINQ to SQL查询,它连接到两个表上-一个非常简单,工作正常,但另一个相当复杂,我发现join子句中一个表达式的类型不正确。调用“GroupJoin”时类型推断失败

这是一个相当长的问题,我做了一项关于互联网接入的工作,所以我想我应该看看这句话是否足够:

join consignments in dc.Consignments
    .FirstOrDefault(x => x.TripDate > dateFrom 
    && x.TripDate < dateTo 
    && x.DeliveryDepot == depot.Letter 
    && (x.DeliveryStatus == 2 || x.DeliveryStatus == 3))
  on new { Reg = s.VehicleReg, Depot = s.VehicleDepot } 
      equals new { Reg = consignments.VehicleReg, Depot = consignments.DeliveryDepot }
  into con
在dc中加入托运。托运
.FirstOrDefault(x=>x.TripDate>dateFrom
&&x.TripDate

我已经确保了数据类型是相同的,但它仍然不起作用。有什么想法吗?

我认为问题在于这一部分:

on new { Reg = s.VehicleReg, Depot = s.VehicleDepot }
   equals
   new { Reg = consignments.VehicleReg, Depot = consignments.DeliveryDepot }

确保
s.VehicleReg
与托运货物的类型相同。VehicleReg
s.VehicleDepot
与托运货物的类型相同。DeliveryDepot

您确定s.VehicleDepot与托运货物的类型相同吗

on new { Reg = s.VehicleReg, Depot = s.VehicleDepot } 
equals new { Reg = consignments.VehicleReg, Depot = consignments.DeliveryDepot }

还要确保您的成员名称完全相同,大小写相同。例如:

 new { Reg = s.VehicleReg, Depot = s.VehicleDepot }
   equals
   new { Reg = consignments.VehicleReg, DEpot = consignments.DeliveryDepot }

将失败,因为在第二个匿名类型中,depot是不同的情况。

谢谢大家,仔细查看之后,其中一个depot数据类型是“char(2)”,另一个是“nchar(10)”。这会导致这种情况吗?这让我非常头疼,直到我给每一项都指定了一种类型
{ID=something.ID}等于{ID=otherthing.ID}
其中ID是类型