2013-10-10 33 views
-1

廠商Vendorsid點對多點哪些錯誤與此LINQ查詢(連接)

 123 456 
     456 412 
     789 853 

項目StandardItemNumber VendorSID的SerialNumber

1234 123 A1234 
    4567 123 A4567 
    8523 456 A8523 
    1234 456 A1234 

從過程中,我得到123點爲456我要檢查如果來自123的物品已經存在於供應商456下。那麼,因爲它與具有相同序列號的供應商456一起出現,所以誘餌應該給我物品1234。 但是模糊並沒有得到執行。它掛在這個聲明。

var vendors = db.hp_GetEligibleVendors(); 
var items = from i in db.Items 
      where i.VendorID.Equals(vendors.VendorID) 
      select i; 

foreach(var vendor in vendors) 
{ 
    var items = from i in db.Items 
       where i.VendorSID.Equals(vendor.VendorSID) 
       select i; 

    var dupes = from oi in items join di in db.Items 
       on new 
        { 
         oi.ItemNumber, 
         oi.SerialNumber 
        } 
       equals new 
        { 
         ItemNumber = di.ItemNumber, 
         SerialNumber = di.SerialNumber 
        } 
       where di.VendorSID.Equals(vendor.PointToVendorSID) 
       select oi; 
} 

在上面的查詢中,需要花費很長時間才能獲得愚蠢。這個查詢有什麼問題?

+1

向我們顯示您的數據源,您的當前輸出和您想要的輸出。 –

+0

您正在創建一個包含「ItemNumber」的匿名類型,另一個包含「StandardItemNumber」,因此它們永遠不會相同。 –

+0

更正爲ItamNumber,但仍不會產生任何輸出。 – RRForUI

回答

0

我能解決這個問題。我不得不添加ItemNumber = oi.ItemNumber,SerialNumber = oi.SerialNumber。這解決了問題。感謝所有回覆的人。