LINQ पंक्ति अनुक्रमणिका/संख्या का उपयोग कर एकाधिक तालिकाओं में शामिल होना

मेरे पास डेटाबेस में रिकॉर्ड अपलोड करने के लिए एक एक्सेल टेम्पलेट है और इसमें एकाधिक चादरें हैं। मैं LINQ का उपयोग कर अपलोड पर शीट्स डेटा में शामिल होने में सक्षम हूं और यह मेरा कोड है:

var query = from component in ds.Tables[0].AsEnumerable()
            join componenthazardous in ds.Tables[1].AsEnumerable()
            on component.Field("PartNumber")
            equals componenthazardous.Field("PartNumber")
            join manufacturers in ds.Tables[2].AsEnumerable()
            on component.Field("PartNumber")
            equals manufacturers.Field("PartNumber")
            join vendorinfo in ds.Tables[3].AsEnumerable()
            on component.Field("PartNumber")
            equals vendorinfo.Field("PartNumber")
            join crossreference in ds.Tables[4].AsEnumerable()
            on component.Field("PartNumber")
            equals crossreference.Field("PartNumber")

            select new { 
                PartNumber = component["PartNumber"].ToString(),
                Description = component["Description"].ToString(),
                Hazardous = componenthazardous["Hazardous"].ToString(),
                M_MfgrCode = manufacturers["MfgrCode"].ToString(),
                M_MfgrName = manufacturers["MfgrName"].ToString(),
                M_Status = manufacturers["Status"].ToString(),
                M_AsOf = manufacturers["AsOf"].ToString(),
                M_Remarks = manufacturers["Remarks"].ToString()
            };

अब, मेरी समस्या यह है कि मेरे मालिक ने अचानक आवश्यकताओं को बदल दिया। एक्सेल टेम्पलेट पर, तालिका में शामिल होने के लिए उपयोग की जाने वाली कुंजी डुप्लिकेट की जाती है। इसकी विशिष्टता PartNumber और MfgrName के संयोजन पर आधारित होगी। अगर मैं इन पंक्तियों में केवल एक शीट में है तो मैं इस संयोजन का उपयोग करके तालिकाओं में कैसे शामिल हो सकता हूं?

मेरा विचार यह है कि मैं अन्य शीट्स पर पार्टनंबर कॉलम के बाद से जुड़ने के लिए अपनी कुंजी के रूप में पंक्ति संख्या का उपयोग करूंगा, पहली शीट/डेटाटेबल से संदर्भित है लेकिन मुझे नहीं पता कि कैसे। इसे हल करने के लिए कोई विचार या कोई अन्य तरीका?

धन्यवाद।

0