Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cú pháp phương thức LINQ cho nhiều phép nối bên trái

Tôi giả sử rằng bạn muốn tham gia bảng UserHasPackages vì ​​bạn muốn lọc kết quả cho một người dùng cụ thể (tôi chỉ đặt 'SomeUser' vì tôi không chắc 'UserHasPackages.ApplicationUserId' đến từ đâu) vì nó không được bao gồm trên mô hình chế độ xem.

Tôi tin rằng những thứ như sau sẽ hoạt động:

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

Bạn cũng có thể thực hiện việc này bằng cú pháp truy vấn:

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. SQLiteLog:(1) near Produse:lỗi cú pháp

  2. Cách sử dụng thẻ JSTL sql

  3. MySQL làm thế nào để thực hiện tăng nếu tồn tại trong một truy vấn duy nhất

  4. Sự cố khởi động máy chủ MySQL trên Mavericks

  5. MySQL gặp sự cố (Một số con trỏ có thể không hợp lệ và khiến kết xuất bị hủy bỏ)