2013-12-18 3 views
6

Ich habe ein Problem beim Senden von Daten aus der Datenbank an eine Liste im Controller. Ich bin neu in C# und MVC, also wird jede Hilfe nützlich sein! Code folgtTyp 'System.Linq.IQueryable <int>' kann nicht in 'int' konvertiert werden

public static List<FilterTree> GetAllUsers() 
    { 
     FilterTreeDBContext db = new FilterTreeDBContext(); 
     var userList = new List<FilterTree>(); 
     var device = new FilterTree(); 
     //This is the line where I get the error 
     device.ID = from a in db.FilterTree select a.ID; 

     userList.Add(device); 
     return userList; 
    } 

Danke & Frohe Feiertage !! :)

+0

Was ist der Problemoffizier? – Max

+0

FilterTree ist Ihr dbset. Aus Ihrer Anfrage erhalten Sie eine Liste von ganzen Zahlen. Was ist der Typ der Instanzvariablen-ID in FilterTree? Ich denke, es ist so offensichtlich, wie der Fehler, den Sie bekommen. Sie versuchen, eine Liste (Iqueryable ) in einem Int-Feld zu speichern. Ich hoffe, diese Analyse wird Ihnen helfen, Ihr Problem zu beheben. – AbhinavRanjan

+0

Danke @AbhinavRanjan für die Erklärung! – Cristian

Antwort

12
device.ID = (from a in db.FilterTree select a.ID).First(); 

Linq Abfrage ist faul, und führt erst, nachdem Sie den Wert

BTW verlangen vergessen nicht, den Kontext zu schließen, sonst werden Sie Verbindungen

using (var db = new FilterTreeDBContext()) 
{ 
    ... 
    return userList; 
} 
+0

Danke, Sir ... es hat funktioniert :) – Cristian

+2

@ Mihai-CristianRotariu, mit diesem Fall, stellen Sie sicher, es als die Antwort zu akzeptieren, wenn die Zeit abgelaufen ist. –

2

Was Leck Da die Frameworks wissen, dass die Abfrage mehr als ein Objekt haben kann, verwenden Sie es wie folgt:

Verwandte Themen