Laden...

EF 5 Data binding directly to a store query is not supported

Erstellt von Diräkt vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.350 Views
D
Diräkt Themenstarter:in
615 Beiträge seit 2009
vor 11 Jahren
EF 5 Data binding directly to a store query is not supported

verwendetes Datenbanksystem: SQl -> EF

Hallo Leute

Ich wollte gerade eine Web-App von EF 4 auf EF5 umstellen. Eigentlich kein Problem ( ObjectContext=>DbContext )

Nun erhalte ich diese Exception seit dem Update (betrifft Binding..)> Fehlermeldung:

Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList().

Relativ schnell habe ich dann folgendes herausgefunden:
IListSource.GetList wirft diese Exception seit EF 4.X... ( MSDN DBSET)

Normal sieht ein Aufruf etwa so aus:



GridView_NeedData(object sender, Eventargs e)
{
  GridView.DataSource= BL.GetIrgendwelcheDaten();    
}

Die BL Methoden liefern ein IQueryable oder ein IEnumerable, was bisher immer perfekt funktioniert hat. ( Weil GetList implementiert war )...

Nun natürlich könnte ich .ToList oder ähnliches verwenden, was aber die ganze Sache sehr umständlich machen würde. (da ich mich so z.B nicht selbst darum kümmern musste wieviel Datensätze abgerufen werden, das GridView (Paging-Einstellung) hat dies bestummen.... )

Kann ich also wirklich nicht mehr direkt an IQueryable binden ?

Beste Grüsse

Diräkt

D
Diräkt Themenstarter:in
615 Beiträge seit 2009
vor 11 Jahren

Schritte um das Problem zu reproduzieren:

=> WebApplication mit Target Framework 4.5 erstellen
=> EF 5 installieren (NuGet)
=> GridView auf Page ziehen
=> Eine Abfrage ausführen:


Grid.DataSource = db.TestTable.Where(r => r.Id == 1);

Besten Dank für eine Antwort 😉