2017-10-16 74 views
-1

我在我的代碼中加入了一個表格。下面你可以看到我的代碼,我在連接2表上看到一個錯誤,試圖連接我的零件表。c#試圖加入表時出現SQL查詢錯誤

if (query.Any()) // Check if REG is in the Database 
{ 
    int carID = query.FirstOrDefault().Id; 
    string carRegg = query.FirstOrDefault().regNo; 
    string carMake = query.FirstOrDefault().Make; 
    string carModel = query.FirstOrDefault().Model; 


    var test = (from a in dbC.Cars 
       where a.Id == carID 
       join b in dbC.Services on a.Id equals b.ServiceWrkNo 
       join c in dbC.PartsUseds on b.ServiceWrkNo equals c.PartsUsedNo 
       join d in dbC.Parts on c.PartsUsedNo equals d.PartName 
       select new 
       { 
        serviceNum = b.ServiceWrkNo, 
        PartNo = c.PartsUsedNo, 
        replacedParts = d.PartName 
       }).ToList(); 

我從模型的第一個方法創建的數據庫如下。

enter image description here

+3

什麼是錯誤的加入? –

+0

這不是一個SQL查詢。這是一個linq查詢。 –

+0

您不應該將Cars中的Id列加入Service中的CarId列,而不是ServiceWrkNo?事實上,你所有的連接似乎都在每個表的錯誤列上,而不是正確的外鍵。 – juharr

回答

1

你加入做似乎有點過 - 你可以嘗試用以下的列

var test = (from a in dbC.Cars 
      where a.Id == carID 
      join b in dbC.Services on a.Id equals b.CarId 
      join c in dbC.PartsUseds on b.ServiceWrkNo equals c.ServiceServiceWrkNo 
      join d in dbC.Parts on c.PartsPartNo equals d.PartNo 
      select new 
      { 
       serviceNum = b.ServiceWrkNo, 
       PartNo = c.PartsUsedNo, 
       replacedParts = d.PartName 
      }).ToList();