2009-07-02 6 views
1

Ich versuche, etwas VB.NET für meine coo-op zu lernen, die nächste Woche beginnt, und aus diesem Grund nahm ich meine Portfolio-Website, die auf C# ist und gerade gestartet um es in VB.NET zu konvertieren, um sich mit der Syntax vertraut zu machen.Linq zu Sql konvertieren zu generischen Liste in VB.NET

Ich bin sicher, dass mein Problem einfach ist, aber ich habe es schwer, es zu lösen. Ich versuche, Daten mit der Linq-Abfrage zu greifen und dann als Liste zurückgeben, um an den Repeater zu binden.

Ich habe die folgende Funktion:

Public Function getProjects() As List(Of portfolio_website) 
     Using myPortfolio As New PortfolioDataContext 
      Try 

       Dim myProjects = (From p In myPortfolio.portfolio_websites _ 
            Order By p.website_id Descending _ 
            Select New With {.name = p.website_name, .id = p.website_id}).Take(5) 

       Return myProjects 

      Catch ex As Exception 
       Return Nothing 
      End Try 
     End Using 
    End Function 

Jedoch habe ich eine Störung erhalte.

Wenn ich es in C# tun würde, dann wird myProjects var und im Gegenzug sein i

return myProjects.ToList(); 

haben und es würde gut funktionieren. Wenn ich jedoch versuche, ToList() in VB.NET zu verwenden, erhalte ich den Fehler, dass es nicht von ling in sql List in die generische Liste konvertieren kann.

Wie mache ich diese Konvertierung in VB.NET? oder vielleicht gibt es einen anderen Weg?

Ich bin in Ordnung, wenn es um C# kommt aber etwas mit der VB.NET-Syntax verloren.

Antwort

1

Ich hasse es. Sekunden nachdem ich meine Frage gestellt hatte, realisierte ich mein Mystake. Es ist das gleiche wie in C#, aber wenn ich

nehmen
Select New With {.name = p.website_name, .id = p.website_id 

dann entweder ich brauche ein benutzerdefiniertes Objekt haben, oder muß ich alles nehmen. Also änderte ich meine Linq zum

Dim myProjects = (From p In myPortfolio.portfolio_websites _ 
           Order By p.website_id Descending _ 
           Select p).Take(5) 

Return myProjects.ToList() 

auf SQL und jetzt alles funktioniert.