My sql query is 

```
SELECT DISTINCT 
  tblProjects.RevID, tblProjects.CEQRNum, tblProjects.ProjectName, GEOCODE.BBL,     tblProjects.BoroID, GEOCODE.BLOCK, GEOCODE.LOT, 
                     tblMilestoneType.MilestoneName, tblMilestone.MilestoneDate
FROM            tblMilestoneType INNER JOIN
                     tblMilestone ON tblMilestoneType.MilestoneID = tblMilestone.MilestoneTypeID RIGHT OUTER JOIN
                     tblProjects ON tblMilestone.RevID = tblProjects.RevID LEFT OUTER JOIN
                     GEOCODE ON tblProjects.RevID = GEOCODE.RevID
WHERE        (
            tblMilestone.MilestoneDate IN (SELECT MAX(tblMilestone.MilestoneDate) AS MilestoneDate
                                          FROM tblMilestone INNER JOIN tblMilestoneType ON tblMilestone.MilestoneTypeID = tblMilestoneType.MilestoneID
                                          GROUP BY tblMilestone.RevID)
         )
ORDER BY tblProjects.RevID

```

I am trying to convert this to linq.

So i started with 

```
projectList = db.tblMilestoneTypes
                                .Join(db.tblMilestones,
                                    mileType => mileType.MilestoneID,
                                    mile => mile.MilestoneTypeID,
                                    (mileType, mile) => new
                                    {
                                        tblMilestoneType = mileType,
                                        tblMilestone = mile
                                    })
                                .Join(db.tblProjects,                                        
                                    project => project.        // does not work)

```

Also tried 

```
projectList = from MilestoneTypeTable in db.tblMilestoneTypes 
                          join MilestoneTable in db.tblMilestones  on MilestoneTypeTable.MilestoneID equals MilestoneTable.MilestoneTypeID
                          rig   // no right or left join.

```

How do i do this 
Neha