Der Lambda-Ausdruck kann nicht in den Typ 'String' konvertiert werden, da es sich nicht um einen Delegattyp handelt

8

Ich erstelle eine Seite, die ein LINQ-Abfrageergebnis als Tabelle anzeigt.

  1. Richten Sie die Basisabfrage in der Methode 'SetupArticleQuery ()' ein, die die Abfrage in 'this.articles' speichert.
  2. Führen Sie eine andere Methode aus, 'UpdateFilter ()', um die Ergebnisse zu filtern, die in 'this.articles' gespeichert sind.

Ich bekomme den Fehler

  

Der Lambda-Ausdruck kann nicht in den Typ 'String' konvertiert werden, da es sich nicht um einen Delegattyp handelt

an der Zeile mit dem Code

%Vor%

Irgendwelche Ideen, wie man den Code unten repariert?

%Vor%     
Damiro 31.03.2011, 14:42
quelle

4 Antworten

5

Diese Abfrage:

%Vor%

Funktioniert nicht so, da ein anonymer Typ zurückgegeben wird. Daher müssten Sie es als var eingeben, was für Member auf Klassenebene ungültig ist. Sie können var nur für lokale Variablen verwenden.

Was Sie tun müssen, ist eine tatsächliche Klasse zu erstellen, um Ihre Projektion zu halten und etwas wie:

zu haben %Vor%

Von dort könnte man einfach haben:

%Vor%

Und natürlich würden diese Artikel als IQueryable<LocalDTO> deklariert.

    
Adam Rackis 31.03.2011, 14:46
quelle
28

Ich musste folgendes hinzufügen, damit dieser Fehler verschwindet.

%Vor%     
Asa Julian 27.01.2012 21:40
quelle
13

Tatsächlich habe ich in Ihrem Code kein Problem gefunden.

Von diesem antworten , ich würde vorschlagen zu bestätigen, dass Sie hinzugefügt haben:

%Vor%

Viel Glück!

    
Homam 31.03.2011 14:54
quelle
1

Wenn es ein Problem mit anonymen Typen gibt, können Sie so etwas tun?

%Vor%

Dies kann von der Basis abweichen, da das zugrunde liegende Lambda dasselbe ist.

    
Josh Anderson 31.03.2011 14:49
quelle