Comment convertir la requête de jointure interne sql en requête linq en sql et la convertir en list

J'ai ci-dessous class:

public class customRequest { public ssortingng REQ_STATUS { get; set; } public DateTime REQ_RVE_DATnTIM { get; set; } public ssortingng EMP_FNAME { get; set; } public ssortingng EVE_CAT_NAME { get; set; } public ssortingng EVE_NAME { get; set; } } 

et ci-dessous SQL Inner Join Query qui fonctionne parfaitement dans SQL:

 SELECT req.REQ_STATUS,req.REQ_RVE_DATnTIM, emp.EMP_FNAME, cat.EVE_CAT_NAME,eve.EVE_NAME from REQUESTS req inner join Employees emp on req.REQ_EMP_ID = emp.ID inner join EVENTCATEGORIES cat on req.REQ_EVE_CAT_ID = cat.ID inner join EVENTS eve on req.REQ_EVE_NAM_ID = eve.ID order by req.REQ_STATUS 

Ce que je veux, c'est le convertir en ma requête linq en sql. Voici ma requête Linq to Sql que j'ai essayée:

 slist = from req in db.REQUESTS join emp in db.Employees on req.REQ_EMP_ID equals emp.ID join cat in db.EVENTCATEGORIES on req.REQ_EVE_CAT_ID equals cat.ID join eve in db.EVENTS on req.REQ_EVE_NAM_ID equals eve.ID select new { req.REQ_STATUS, req.REQ_RVE_DATnTIM, emp.EMP_FNAME, cat.EVE_CAT_NAME, eve.EVE_NAME }; return slist.ToList(); 

Mais il me montre une erreur sur la dernière jointure:

Erreur 1 Impossible de convertir implicitement le type 'System.Linq.IQueryable' en 'System.Collections.Generic.List'. Une conversion explicite existe (manque-t-il une dissortingbution?) H: \ 64bit \ Project finalisation \ Blue_Pumpkin \ Blue_Pumpkin \ Admin \ Requests.aspx.cs 32 25 Blue_Pumpkin

Je suppose que vous souhaitez renvoyer une class customRequest partir de votre requête. Vous devez exprimer explicitement votre instruction select en tant que customRequest .

 slist = (from req in db.REQUESTS join emp in db.Employees on req.REQ_EMP_ID equals emp.ID join cat in db.EVENTCATEGORIES on req.REQ_EVE_CAT_ID equals cat.ID join eve in db.EVENTS on req.REQ_EVE_NAM_ID equals eve.ID select new customRequest { REQ_STATUS = req.REQ_STATUS, req.REQ_RVE_DATnTIM, EMP_FNAME = emp.EMP_FNAME, EVE_CAT_NAME = cat.EVE_CAT_NAME, EVE_NAME = eve.EVE_NAME }).ToList(); return slist; 

Si c'est le cas, vous devez renvoyer une list. Vous devez déclarer votre type de return en tant que variable de list et utiliser ToList() partir de là, si vous voulez returnner un set de résultats, vous pouvez utiliser First() ou FirstOrDefault()

Vous pouvez utiliser ToList () avec votre requête linq:

 var slist = (from req in db.REQUESTS join emp in db.Employees on req.REQ_EMP_ID equals emp.ID join cat in db.EVENTCATEGORIES on req.REQ_EVE_CAT_ID equals cat.ID join eve in db.EVENTS on req.REQ_EVE_NAM_ID equals eve.ID select new select new customRequest { REQ_STATUS = req.REQ_STATUS, REQ_RVE_DATnTIM= req.REQ_RVE_DATnTIM, EMP_FNAME = emp.EMP_FNAME, EVE_CAT_NAME = cat.EVE_CAT_NAME, EVE_NAME = eve.EVE_NAME }){ REQ_STATUS = req.REQ_STATUS, req.REQ_RVE_DATnTIM, EMP_FNAME = emp.EMP_FNAME, EVE_CAT_NAME = cat.EVE_CAT_NAME, EVE_NAME = eve.EVE_NAME }).ToList();