Datenbankkontext und Rückgabe des dynamischen Ergebnisses in ASP.NET MVC

7

In MVC 4 und EF 5 möchte ich eine dynamische Abfrage ausführen.

%Vor%

Ich weiß nicht, wie viele Felder es zurückgeben und benennen wird. Aus diesem Ergebnis möchte ich eine Tabellenstruktur erstellen, die in der Ansicht angezeigt wird.

Frage: Was sollte ich als Typ übergeben?

Meine Abfrage gibt das Ergebnis zurück:

Feld 1, Feld 2, Feld 3, Feld 4, Feld 5

Zeile1 ...

Row2 ..

Schätzen Sie jeden Vorschlag.

    
Dips 31.03.2013, 17:32
quelle

8 Antworten

6

Schließlich habe ich die TypeBuilder-Option verwendet, die von "Mortalus" und dem ExpandoObject-Objekt vorgeschlagen wird. Es hat gerade einen geringen Leistungsaufwand.

Nehmen Sie den Typebuilder-Code von "Mortalus" an, dann habe ich Code gemäß meiner Anforderung wie folgt erstellt.

%Vor%

Nun habe ich das "Dictionary" -Objekt vom dynamischen Objekt. und verwenden Sie es können Sie leicht zur Design-Zeit arbeiten, anstatt warten bis zur Laufzeit mit "dynamischen" Objekt.

    
Dips 05.04.2013, 14:29
quelle
22

Sie könnten eine rohe SQL-Abfrage verwenden, weil EF dies nicht unterstützt:

%Vor%

und dann:

%Vor%

und schließlich aus Ihrer Sicht:

%Vor%     
Darin Dimitrov 31.03.2013 17:51
quelle
10

Diese Methode lädt Daten aus der SQL-Auswahl (mit Parametern) in die Liste der Zeilen, wobei jede Zeile das Wörterbuch der Spalten ist (der Schlüssel ist der Spaltenname).

%Vor%     
Petr Voborník 09.02.2015 09:02
quelle
0

Ohne etwas über den Typ zu wissen, der zurückgegeben wird, denke ich, dass Sie Pech haben könnten.

Wenn Sie wissen, unter welche Muster es fallen könnte, könnten Sie einige try { } catch () { } 's auf Interfaces verwenden, die mit diesen Parametern in Ihrer ansonsten dynamischen Abfrage übereinstimmen, aber das scheint ein wenig schmerzhaft zu sein.

    
Rob G 31.03.2013 18:08
quelle
0

Leider wird EF Objekte erst dann realisieren, wenn sie ihre Type kennen.

Wenn das wirklich notwendig für Sie ist, würde ich Ihnen empfehlen, auf ADO.NET und DataTable zurückzugreifen.

    
Nicholas Butler 31.03.2013 18:16
quelle
0

Ähnliches Post von Darin Dimitrov, aber es gibt DataTable

zurück %Vor%

Verwenden Sie

%Vor%

Beispiel für MS SQL Server

    
Sel 24.12.2013 06:20
quelle
0

Ich bin kürzlich auf dieses Beispiel gestoßen:

Ссылка

Ich hatte nicht die Zeit, es selbst zu testen, aber es scheint, dass es mit etwas zusätzlicher Arbeit möglich ist, den dynamischen Typ zu konstruieren.

Kurz gesagt, Sie möchten so etwas tun:

%Vor%

Wo TypeBuilder detailliert in dem Beitrag beschrieben ist, den ich angehängt habe.

    
Mortalus 31.03.2013 18:21
quelle
0

Hinzufügen zu Petr Voborníks Antwort, dynamische Abfrage, ich füge dynamische Einfügung von ResultSet, meine Anwendung nimmt die dynamische Abfrage aller Tabellen der gesamten Datenbank, ein Stück nach dem anderen und fügt dann die dynamischen Ergebnisse in eine entfernte Datenbank ein Immer verschlüsselt (hier nicht aufgeführt). Übergeben eines SB-Befehls- und Parameterobjekts.

%Vor%     
Stephen Himes 01.06.2017 14:28
quelle