2016-06-30 22 views
1

Umwandlung Wenn ich dies tun:NotSupportedException wenn ein IQueryable <object>

var db = new NotentoolEntities(); 
    IQueryable<GroupOfBranches> queryGOB = db.tabGroupOfBranches.Cast<GroupOfBranches>().Where(x => x.intGroupID.Equals(ID)); 
    List<GroupOfBranches> GOB = new List<GroupOfBranches>(queryGOB); //here is the error 

Ich habe die folgende Fehlermeldung anzeigt:

A first chance exception of type 'System.NotSupportedException' occurred in EntityFramework.SqlServer.dll 
+0

zu ändern Problem könnte sein, mit Funktion Equals, die nicht von EntityFramework unterstützt wird .. –

+0

Aufruf 'ToList()' nach 'Wo()' könnte klarer sein – haim770

+0

My Fehler ist in der dritten Zeile, aber ich habe versucht, die Equals zu ersetzen und ich habe den gleichen Fehler –

Antwort

0

könnte prüfen Sie den Code dort

using (var db = new NotentoolEntities()) 
    { 
     var GOB = db.tabGroupOfBranches.Where(x => x.intGroupID == ID).Select(y => new GroupOfBranches 
      { 
       /// here specify your fields 
      }).AsNoTracking().ToList(); 
    } 
4

Ich nehme an, dass der zugrunde liegende LINQ-Anbieter nicht Anruf umwandeln kann zu Equals zu etwas es weiß Bescheid.

Verwenden Sie == Operator stattdessen. Das wird in einem anderen Ausdrucksbaum enden, der übersetzt werden kann.

var db = new NotentoolEntities(); 
IQueryable<GroupOfBranches> queryGOB = 
    db.tabGroupOfBranches.Cast<GroupOfBranches>().Where(x => x.intGroupID == ID)); 
List<GroupOfBranches> GOB = new List<GroupOfBranches>(queryGOB); 

Wenn GroupOfBranches Klasse abgeleitet ist von was auch immer die Art von tabGroupOfBranches zurückgegeben wird, dann sollten Sie wahrscheinlich OfType verwenden, statt Cast.

Andernfalls könnte Cast nach Where und mit einem Select ersetzt werden, wodurch Instanzen der GroupOfBranches-Klasse explizit erstellt werden.

+0

Danke, aber mein Fehler ist in der dritten Zeile –

+0

Ist es immer noch passiert? Dort wird die Abfrage ausgeführt, und ich würde erwarten, dass sich der Fehler in der dritten Zeile manifestiert. –

+0

Ja, es passiert immer noch –