Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Składnia metody LINQ dla wielu sprzężeń lewych

Zakładam, że chcesz dołączyć do tabeli UserHasPackages, ponieważ chciałeś filtrować wyniki dla konkretnego użytkownika (po prostu wstawiłem „SomeUser”, ponieważ nie jestem pewien, skąd pochodzi „UserHasPackages.ApplicationUserId”), ponieważ to nie znajduje się w modelu widoku.

Uważam, że powinno działać coś takiego:

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
    });

Możesz to również zrobić, używając składni zapytania:

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. Importowanie 8GB zrzutu mysql zajmuje dużo czasu

  2. Wybierz w MySQL, gdzie wszystkie wiersze spełniają warunek

  3. MySQL JEŚLI NULL ELSE

  4. Pop ostatni element w tablicy JSON w MySQL 5.7

  5. Nieprzechwycony błąd:wywołanie funkcji członkowskiej Prepare() przy błędzie zerowym