LINQ TO entities Unable to create a constant value of type...

DrMueller

Erfahrenes Mitglied
Huhu Leute,

ich bin wieder mal da.
Ich versuch mich grad bisschen an LINQ to entities und hab eine, meiner Meinung nach, interessante Begebenheit gefunden.
Konkret habe ich eine Liste von Objekten und möchte aus dem Kontext eine aktualisierte Liste laden.

Dies kann ich z.B. über folgenden Code machen:
Code:
                var telecomIds = telecomFbks.Select(t => t.ID);
                result = ctx.TELECOM_FBKs.Where(t => telecomIds.Contains(t.ID)).ToList();

Klappt soweit wunderbar. Wenn in der Zwischenzeit etwas aktualisiert wurde, erhalte ich die neuen Daten.

Wenn ich jedoch nun folgende Zeile durchführe:
Code:
result = ctx.TELECOM_FBKs.Where(t => telecomFbks.Select(x => x.ID).Contains(t.ID)).ToList();

Erhalte ich oben genannten Fehler. Meiner Meinung nach tut diese Zeile genau das selbe wie obige, trotzdem klappt es nicht.

Hat zufällig jemand eine Idee, wieso dies nicht möglich ist?


Wie immer vielen Dank im Vorraus


Müller Matthias
 
Hallo DrMueller,

ich weiß leider nicht, ob dir das weiterhilft aber mir ist in deinem Code folgendes aufgefallen:

bei dem ersten Codebeispiel machst du folgendes:
var telecomIds = telecomFbks.Select(t => t.ID);
result = ctx.TELECOM_FBKs.Where(t => telecomIds.Contains(t.ID)).ToList();

Im zweiten Codebeispiel änderst du jedoch diesen Teil des Codes:
result = ctx.TELECOM_FBKs.Where(t => telecomFbks.Select(x => x.ID).Contains(t.ID)).ToList();

Mag natürlich sein, dass das so gewollt ist. Den restlichen Code kenne ich ja nicht.
Aber zumindest ist dies eine kleine Stelle, wo sich deine Beispiele unterscheiden.

Gruß
Hale
 
Ja, soll doch so sein? Ich mache ja mit telecomFbks.Select eine temporäre Liste nur mit den IDs, da macht es mM keinen Sinn t zu verwenden. Könnte ich sicher machen, wird aber dadurch recht unübersichtlich.
 

Neue Beiträge

Zurück