Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एकाधिक बाएं जुड़ने के लिए LINQ विधि वाक्यविन्यास

मुझे लगता है कि आप UserHasPackages तालिका में शामिल होना चाहते हैं क्योंकि आप किसी विशिष्ट उपयोगकर्ता के लिए परिणामों को फ़िल्टर करना चाहते हैं (मैंने अभी 'कुछ उपयोगकर्ता' डाला है क्योंकि मुझे यकीन नहीं है कि 'UserHasPackages.ApplicationUserId' कहां से आया है) क्योंकि यह दृश्य मॉडल में शामिल नहीं है।

मेरा मानना ​​है कि निम्नलिखित की तरह कुछ काम करना चाहिए:

var list = context.Packages
    .Join(context.Containers, p => p.ContainerID, c => c.ID, (p, c) => new { p, c })
    .Join(context.UserHasPackages, pc => pc.p.ID, u => u.PackageID, (pc, u) => new { pc.p, pc.c, u })
    .Where(pcu => pcu.u.UserID == "SomeUser")
    .Select(pcu => new
    {
        pcu.p.ID,
        pcu.c.Name,
        pcu.p.Code,
        pcu.p.Code2
    });

आप क्वेरी सिंटैक्स का उपयोग करके भी ऐसा कर सकते हैं:

var query = from package in context.Packages
            join container in context.Containers on package.ContainerID equals container.ID
            join userHasPackage in context.UserHasPackages on package.ID equals userHasPackage.PackageID
            where userHasPackage.UserID == "SomeUser"
            select new
            {
                package.ID,
                container.Name,
                package.Code,
                package.Code2
            };



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में प्राथमिक कुंजी निकालें

  2. Mysql डालने से पहले सरणी मानों को साफ करना

  3. MySQL में Varchar को कैरेक्टर में विभाजित करें

  4. जेपीए/हाइबरनेट में कई-से-अनेक संबंध मॉडलिंग

  5. लारवेल 4 - जॉइन - समान कॉलम नाम