Sep 18

Der Lambda-Ausdruck kann nicht in „String“ konvertiert werden…

Tag: Tipps und TricksTorsten @ 15:47

Manchmal gibt es wirklich tolle irreführende Fehlermeldungen 😉

Using entities As New Entities_MyModel()
Dim userQuery = entities.Users.Where(Function(f) f.ID = 1)
Dim myUser = userQuery.First()

Führt zu: Der Lambda-Ausdruck kann nicht in „String“ konvertiert werden, da „String“ kein Delegattyp ist. bzw. Lambda expression cannot be converted to ‚String‘ because ‚String‘ is not a delegate type.

 

Die gleiche Abfrage in etwas anderer Schreibweise ergibt eine sinnvollere Fehlermeldung:

Using entities As New Entities_MyModel()
Dim userQuery = From user In entities.Users _
                 Where user.ID = 1 _
                 Select user
If userQuery.Count > 0 Then Dim myUser = userQuery.First()

Führt zu: Ein Ausdruck vom Typ „System.Data.Objects.ObjectQuery(Of Data.Interface.MyModel.Users)“ kann nicht abgefragt werden. Stellen Sie sicher, dass kein Assemblyverweis und/oder Namespaceimport für den LINQ-Anbieter fehlt.

 

Warum nicht gleich so 😉 Es fehlt in dem Beispiel einfach nur der Verweis auf System.Core im Projekt, sowie Imports System.Linq zu Beginn der Klasse.