2010-12-14 11 views
0

Ist es möglich, ein Verfahren mit in Linq auszuführen dhLinq innerhalb Methode Execute

var lst = (from ls in testEntity.Month where ls .Month1.ToString() == hello() select ls).ToList(); 

    private string hello() 

     { 
      return "8"; 
     } 

Ich weiß, dass Linq selbst nicht ausgeführt wird, während dieser Ausführung ich die folgende Störung erhalte

LINQ to Entities erkennt die Methode 'System.String ToString()' nicht und diese Methode kann nicht in einen Speicherausdruck übersetzt werden.

+0

versuchen, etwas Definition und Code zu geben – ratty

Antwort

3

Im Allgemeinen können Sie Methoden in LINQ ohne Probleme aufrufen. Das Problem, auf das Sie stoßen, ist spezifisch für LINQ to Entities. L2E muss all Ihre Methodenaufrufe in die entsprechenden Datenbankanweisungen übersetzen, und für die von Ihnen aufgerufene Methode weiß es nicht, wie es übersetzt werden soll.

Sie könnten Ihre hallo() Funktion umschreiben einen Ausdruck zurück:

public Expression<Func<string>> hello() { 
    return() => "8"; 
} 

auf diese Weise L2E können die Aussagen übersetzen. Wenn das funktioniert, hängt das natürlich von deinem echten Code ab.

Verwandte Themen