So wählen Sie alle Scheduling
s, die aktiv sind, habe ich den folgenden Code:
var allSchedulesOnALine = CurrentUser.Lines.SelectMany(o => o.Scheduling).Where(o => o.Active);
var allSchedulesUnscheduled = Entities.SchedulingSet
.Where(o => o.Line == null && o.Site.Id == CurrentUser.Site.Id &&
o.Factory == CurrentUser.Factory && o.Active);
IEnumerable<Scheduling> allSchedules = allSchedulesUnscheduled.Union(allSchedulesOnALine);
foreach(Scheduling schedule in allSchedules.OrderBy(o => o.Ordering))
{
//Do Stuff
}
( Factory
ist ein int
)
Wenn ich diesen Code ausführe, erhalte ich diesen kryptischen Fehler in der foreach
Linie:
Konstanter Wert vom Typ 'System.Collections.Generic.IEnumerable`1' kann nicht erstellt werden. Nur primitive Typen ('wie Int32, String und Guid') werden in diesem Kontext unterstützt.
Seltsamerweise kann ich beides aufzählen allSchedulesOnALine
y allSchedulesUnscheduled
getrennt. Noch seltsamer wird es, wenn ich die Gewerkschaft neu bestelle:
IEnumerable<Scheduling> allSchedules = allSchedulesOnALine.Union(allSchedulesUnscheduled);
Es funktioniert gut!
Hat jemand eine Idee, warum das passieren könnte? Übersehe ich etwas Entscheidendes, oder ist das ein Fehler?
Ich sollte erwähnen, dass ich Entity Framework 3.5 verwende. EF4 ist derzeit keine Option für uns - es liegt außerhalb meiner Kontrolle :\