9 Stimmen

Entity Framework - Union verursacht "Unable to create a constant value of type.."

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 :\

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X