2009-03-27 11 views
0

Ich rufe manuell eine gespeicherte Prozedur ein Entity Framework EntityConnection mit etwa so:Wie konvertiert man einfach ein DbDataReader-Objekt in etwas Nützliches?

DbConnection storeConnection = entityConnection.StoreConnection; 
DbCommand command = storeConnection.CreateCommand(); 
command.CommandText = "sp_GetMyComplexData"; 
command.CommandType = CommandType.StoredProcedure; 

DbDataReader reader = command.ExecuteReader(); 

Der Grund dafür ist, dass die Entity Framework leicht Entitäten nicht unterstützt, die Tabellen oder Ansichten nicht direkt zuzuordnen. Ich habe diesen Artikel gefunden (http://dotnet.dzone.com/news/mapping-stored-procedure), aber es erfordert die Bearbeitung der XML, die ich gerne vermeiden würde.

In meinem Fall verwende ich nur eine Abfrage, die zwei Tabellen mit einem LINKEN JOIN verbindet. Der Grund dafür ist, dass ich versuche, die Ergebnisse an ein Telerik RadGrid zu binden, das keine hierarchischen Datenexporte unterstützt, aber gruppierte Datenexporte zu unterstützen scheint.

Das Problem ist, wie konvertiere ich das DbDataReader-Objekt in etwas Nützliches, das ich an mein RadGrid binden kann? Ich habe einzelne Objekte oder IQrätige Objekte in meinen DAL-Methoden weitergegeben. Irgendwelche Ideen? Danke im Voraus?

EDIT:

Ich brauche nur die Daten. Ich brauche keine Inserts, Updates, lösche danach. Es ist eine schreibgeschützte Ansicht.

Antwort

1

Ich weiß nicht über RadGrid, aber Sie können diesen Datenreader an die integrierten Grid-Steuerelemente wie GridView binden. Sie können es nicht nur für Updates, Löschungen oder Einfügungen verwenden.

Andernfalls könnten Sie es in eine Datentabelle mit der .Load() -Methode des Datentarifs verwandeln. Aber Sie müssen immer noch wissen, wie Sie das Einfügen/Aktualisieren/Löschen manuell durchführen.

+0

Ich danke table.Load (Leser); ist was ich suche. Ich werde dich wissen lassen, wie es geht ... –

+0

Ja, das war genau das, was ich brauchte. Danke Joel! –

Verwandte Themen