Mysql
 sql >> база данни >  >> RDS >> Mysql

Синтаксис на LINQ метод за множество леви съединения

Предполагам, че искате да се присъедините към таблицата UserHasPackages, защото искате да филтрирате резултатите за конкретен потребител (току-що поставих „SomeUser“, защото не съм сигурен откъде идва „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. PDO-MySQL:Булевите стойности се преобразуват в 1 или празен низ при подготвено обвързване на изрази

  3. Поставете резултатите от заявката на командния ред на mysql в променлива на bash скрипт

  4. Конфигурация на база данни CakePHP 4.0

  5. SQLAlchemy/MySQL Загубена връзка с MySQL сървър по време на заявка