var depts = ctx.Departments
.OrderBy(d => d.deptName)
.Select(d => d.deptNo);
foreach (int deptNumber in depts) {
var deptReports = from d in ctx.Departments
join r in matchingIncidents on d.deptNo equals r.deptNo
where r.deptNo == deptNumber
select r;
int deptReportsCount = deptReports.Count();
Je suis complètement déconcerté! Toutes les questions à propos de cette erreur disent d'utiliser == sur les champs primitifs (comme les IDs), ce que je fais. Tout ce que je fais à cette requête génère l'exception. Le même code a fonctionné avant et je ne sais pas ce que j'ai fait! Est-ce que quelqu'un pourrait m'expliquer s'il vous plaît ce qui se passe?Entity Framework - NotSupportedException
Aussi, je me souviens qu'il y avait une classe EntityFramework avec des méthodes qui vous permettaient de convertir des objets dans une requête (par exemple des dates), est-ce que quelqu'un sait ce qu'est cette classe?
MISE À JOUR:
Voici les changements que j'ai fait (cela fonctionne maintenant).
var deptReports = from r in matchingIncidents
join d in ctx.Departments on r.deptNo equals d.deptNo
where r.deptNo == deptNumber
select r;
est '' matchingIncidents' un IQueryable' ou une liste d'objets qui sont déjà chargés dans la mémoire? Si c'est une collection en mémoire, gardez à l'esprit que le 'JOIN 'dans votre code UPDATE ne se produira pas dans la base de données mais dans la mémoire - ce qui signifie: Toute la table' Departments' sera chargée en mémoire avant la jointure Mémoire. – Slauma