public List<UserInfo> gettopUserInfo()

{

List<UserInfo> userInfos = new List<UserInfo>();

var result = (from u in _dbPIPESS.Users

join p in _dbPIPESS.Professions on u.ProfessionID equals p.ID into p_join

from p in p_join.DefaultIfEmpty()

join sp in _dbPIPESS.Specialities on u.SpecialtyID equals sp.ID into sp_join

from sp in sp_join.DefaultIfEmpty()

join inter in _dbPIPESS.Interests on u.InterestsID equals inter.ID into inter_join

from inter in inter_join.DefaultIfEmpty()

join cont in _dbPIPESS.Countrys on u.CountryID equals cont.ID into cont_join

from cont in cont_join.DefaultIfEmpty()

join stat in _dbPIPESS.States on u.StateId equals stat.Id into stat_join

from stat in stat_join.DefaultIfEmpty()

join prac in _dbPIPESS.Practices on u.PracticeTypeID equals prac.ID into prac_join

from prac in prac_join.DefaultIfEmpty()

select new UserInfo

{

ID = u.ID,

ProfessionType = p.ProfessionType,

SpecialityType = sp.SpecialityType,

InterestsType = inter.InterestsType,

FirstName = u.FirstName,

MiddleInitial = u.MiddleInitial,

LastName = u.LastName,

Suffix = u.Suffix,

Email = u.Email,

Phone = u.Phone,

Fax = u.Fax,

Department = u.Department,

Address1 = u.Address1,

Address2 = u.Address2,

City = u.City,

CountryName = cont.CountryName,

Name = stat.Name,

StateName = u.StateName,

ZipCode = u.ZipCode,

PracticeType = prac.PracticeType,

Years = u.Years,

UserName = u.UserName,

Password = u.Password

});

if (result.Count() > 0)

userInfos = result.ToList();

return userInfos;

}