i have this query and i am unable to convert it to an equivalent linq query
select distinct u.Name,p.PName,u.AccCreateDate,up.BuyDate,u.ID from Users u
inner join UserPackages up on up.U_ID=u.ID
inner join Packages p on p.PID=up.P_ID
where u.UserRef_No in
(select RefOf from Refers r inner join
Users u on r.RefNo=u.UserRef_No inner join UserPackages up on up.U_ID=u.ID where up.PackageStatus=1 )
i tried this but it doens't work
var referrals = (from u in dbs.Users
join up in dbs.UserPackages on u.ID equals up.U_ID
join p in dbs.Packages on up.P_ID equals p.PID
where u.UserRef_No.Contains
(
from rr in dbs.Refers
join uu in dbs.Users on rr.RefNo
equals uu.UserRef_No
join upp in dbs.UserPackages on
uu.ID equals upp.U_ID
where upp.PackageStatus.Equals(1)
select rr.RefOf)
select new UsersHavingReferrals
{
Id = u.ID,
UserName = u.Name,
PackageName = p.PName,
AccCreateDate = u.AccCreateDate,
PackageBuyDate = up.BuyDate
}).Distinct().ToList();
EDIT:-
i think this might be the answer though not sure so not gonna mark it as an answer
var data = (from u in db.Users
join up in db.UserPackages on u.ID equals up.U_ID
join p in db.Packages on up.P_ID equals p.PID
join r in db.Refers on u.Ref_No equals r.RefOf
where db.Users.Any
(sp => sp.UserRef_No == r.RefOf && sp.ID == UID)
&& up.PackageStatus == true
select new ReferralsListView
{
Name = u.Name,
Package = p.PName,
Price = p.Price,
YouEarned = (p.Price * p.ReferCommission / 100)
}).Distinct().ToList();