Joins in Linq

How can we make JOINS like SQl in Linq !!

Here is Simple Example..

Here Entity Model is Entity Framework Model.

private void TestLInq()
    {
        using (EntityModel objModel = new EntityModel())
        {
            var stateList = objModel.States;  // States is Table
            var cityList = objModel.Cities; // Cities is Table

   var InnerJoin = (from SL in stateList
                              join CL in cityList on SL.StateID equals CL.StateID
                              select new
                                   {
                                      SL.StateID,
                                      SL.StateName,
                                      CL.CityID,
                                      CL.CityName
                                   });

   var LeftJoin = (from SL in stateList
                            join CL in cityList on SL.StateID equals CL.StateID into CL_join
                           from CL1 in CL_join.DefaultIfEmpty()//left join
                           select new
                                 {
                                     SL.StateName,
                                     cityID =(Int32?) CL1.CityID,
//Casting if there is an error in result for Cast

                                     cityName = CL1.CityName
                                 });
           
 var RightJoin = (from CL in cityList
join SL in stateList on CL.StateID equals SL.StateID into State_Join
                                         from SL1 in State_Join.DefaultIfEmpty()
                                         select new
                                         {
                                           stateID = SL1.StateID,
                                           CL.StateID,
                                           CL.CityID,
                                           CL.CityName
                                          });                     
                      }
    }