0

I Have three tables and I need to perform inner join query for LINQ using C#. I can go half way but i am very beginner, need help in that many thanks

SQL Query

Select O.CarID, C.customerID, C.Name, C.Address, V.Brand, V.Model, V.Model_Year 
FROM Car_OwnerShip As O, Customers As C, Cars As V
WHERE V.CarID = O.CarID AND O.customerID = C.customerID AND C.Name='toxic';

enter image description here

Gert Arnold
  • 105,341
  • 31
  • 202
  • 291
K.Z
  • 5,201
  • 25
  • 104
  • 240

3 Answers3

5

I think that something like this will do the trick:

Car_Ownership
.Join
(
    Customers,
    o=>o.customerID,
    c=>c.customerID,
    (o,c)=>new{o,c}
)
.Join
(
    Cars,
    o=>o.o.CarId,
    v=>v.CarID,
    (o,v)=>new{o,v}
)
.Where
(
    x=>
    x.o.c.Name == "toxic"
)
.Select
(
    x=>
    new
    {
        CarID = x.o.o.CarID,
        customerID = x.o.c.customerID,
        Name = x.o.c.Name,
        Address = x.o.c.Address,
        Brand = x.v.Brand,
        Model = x.v.Model,
        Model_Year = x.v.Model_Year
    }
)
Dog Ears
  • 9,637
  • 5
  • 37
  • 54
Giannis Paraskevopoulos
  • 18,261
  • 1
  • 49
  • 69
2
var query = from owner in Car_OwnerShip
            from customer in Customers
            from car in Cars 
            select new { owner, customer, car }
            where owner.CarID = car.CarID and owner.CustomerID = customer.CustomerId and customer.Name = "toxic";
lbarczynski
  • 170
  • 11
2

Try this

from o in Car_OwnerShip
join c in Customers on o.customerID equals c.customerID
join v in Cars on o.CarID equals v.CarID 
where c.Name=='toxic'
select new {
O.CarID, C.customerID, C.Name, C.Address, V.Brand, V.Model, V.Model_Year 
}
Amit
  • 15,217
  • 8
  • 46
  • 68