Convert three tables PostgreSQL query to Entity Framework

30 Views Asked by At

How can I convert next SQL query to Entity Framework

SELECT 
  customers."CustomerId",
  customers."CustomerName",
  "Orders"."OrderId",
  "Orders"."Description",
  "Orders"."CustomerId",
  "OrderDetails"."OrderDetailId",
  "OrderDetails"."Article",
  "OrderDetails"."OrderId"
FROM
  "Orders"
  RIGHT OUTER JOIN customers ON ("Orders"."CustomerId" = customers."CustomerId")
  LEFT OUTER JOIN "OrderDetails" ON ("Orders"."OrderId" = "OrderDetails"."OrderId")

What I have tried:

public List<customers> GetAll() 
{ 
    var custord= _dbContext.customers .Include(x => x.Order) .Include(x => x.OrderDetails) .ToList(); return custord;
    
}

The problem: If I have Order without OrderDetail information I can not get all records.

ER Diagram looks like ER Diagram

1

There are 1 best solutions below

0
BoS On

This is solution, thanks all:

var item = (
from Order in _dbContext.Orders
join Customer in _dbContext.Customers on Order.CustomerId equals Customer.CustomerId
join OrderDetail in _dbContext.OrderDetails on Order.OrderId equals OrderDetail.OrderId
select new
{
    CustomerId = Customer.CustomerId,
    CustomerName = Customer.CustomerName,
    OrderId = Order.OrderId,
    Description = Order.Description,
    OrderDetailId = OrderDetail.OrderDetailId,
    Article = OrderDetail.Article,

}).ToList();