2011-04-06 33 views
9

我有一個複雜的LINQ to SQL查詢,它連接到兩個表 - 一個相當簡單,工作正常,但其中一個相當複雜,我越來越The type of one of the expressions in the join clause is incorrect. Type inference failed in the call to 'GroupJoinLINQ - '連接子句中的一種表達式的類型不正確'

這是一個相當長的查詢,和我做開發與互聯網接入的工作,所以我想我會看,這似乎是這個問題行是不夠的:

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 

我確保數據類型是相同的,但它仍然不起作用。有任何想法嗎?

+0

謝謝大家,看了多一點後,其中一個車站數據類型是'char(2)',另一個是'nchar(10)'。這會造成這種情況嗎? – Chris 2011-04-06 15:01:37

回答

18

您確定s.VehiculeDepot與consignments.DeliveryDepot的類型相同嗎?

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

這使我非常頭痛,直到我爲每個項目分配一個類型。 '{ID = something.Id}等於{ID = otherthing.Id}'其中ID是類型 – 2014-11-14 20:00:20

4

我認爲這個問題是在這個部分:

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

確保s.VehicleReg具有相同的類型consignments.VehicleReg,並s.VehicleDepot具有相同的類型consignments.DeliveryDepot

0

此外請確保您的成員名稱完全相同並且相同的情況。例如:

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

會失敗,因爲軟件倉庫在第二個匿名類型中不同。

相關問題