2017-02-23 3 views
0

Ich habe eine einfache gespeicherte Prozedur, die ein paar Spalten aus einer viel größeren Tabelle mit einem kleinen Begriff zurückgibt.Entity Framework erhält ein Select-Befehlsobjekt aus einer gespeicherten Prozedur

Etwas wie folgt aus:

CREATE PROCEDURE spTemp @Type nvarchar(25) 
AS 
    SELECT DISTINCT gType, gYear, gModel 
    FROM MyTableOnDB 
    WHERE gType = @Type 
GO 

Ich habe auch die Aufgabe, die Daten in zu füllen. Etwas wie:

public class info 
{ 
    public string Type {get; set;} 
    public string Model {get; set;} 
    public int year {get; set;} 
} 

Was der richtige/beste Weg wäre, um das Objekt zu dem zurückgegebenen Wert des Verfahrens mit Entity Framework im Auge zu verbinden?

P.S. Ich benutze SQL Server, EF, C#.

Antwort

0

Da Sie EF verwenden, wird Ihre gespeicherte Entität in Ihrer Lösung erstellt. Sie können Ihre Stored Procedure aufrufen und in Entity Type konvertieren. Hier ist ein Beispiel Weg

return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<info>("spTemp", Type); 
0

als Link Stored-Procedure Sie die gespeicherten Prozeduren in dem VS importieren können und nutzen sie, um Daten zu erzeugen.

0

Sie müssen die gespeicherte Prozedur in das Modell importieren. Es wird ein neuer komplexer Typ mit dem Namen {sp name} _Result erstellt.

Sie brauchen nicht den komplexen Typ für Ihre Abfrage, also entfernen Sie diese, indem Sie mit der rechten Maustaste auf den Funktionsimport im Projektexplorer in diesem Dialog klicken, um die entsprechenden Entitäten zurückzugeben.

Wenn Sie fertig sind, sehen Sie die Funktion in der Klasse.

Sie können dann die Prozedur von etwa wie folgt ausführen:

using (var context = new tempDBEntities()) 
{ 
    var type = context.spTemp(1); 

    foreach (gType cs in gTypes) 
     Console.WriteLine(cs.gType); 
} 

ich dies aus dem Tutorial hier angepasst haben, lassen Sie es mich wissen, wenn Sie es arbeiten. Ich versuche, im Entity-Framework weiterzuentwickeln.

http://www.entityframeworktutorial.net/stored-procedure-in-entity-framework.aspx

Verwandte Themen