Entity Framework bekommt ein select-Befehlsobjekt aus einer gespeicherten Prozedur

Ich habe eine einfache gespeicherte Prozedur, die ein paar Spalten aus einer viel größeren Tabelle mit einem kleinen Begriff zurückgibt.

Etwas wie das :

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

Ich habe auch einen Gegenstand, um die data zu füllen. Etwas wie :

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

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

PS Ich verwende SQL server, EF, C #.

Wenn Sie EF verwenden, wird Ihre gespeicherte Entität in Ihrer Lösung erstellt. Sie können Ihre gespeicherte Prozedur anrufen und in Entity Type konvertieren. Hier ist Stichprobe

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

Als Link- gespeicherte Prozedur können Sie die gespeicherten Prozeduren im VS importieren und sie verwenden, um data zu generieren.

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

Sie brauchen nicht den komplexen Typ für Ihre Abfrage, so entfernen Sie dies durch einen Rechtsklick auf den functionsimport im Projekt-Explorer in diesem Dialog ändern Sie den Rückgabetyp, um die entsprechenden Entitäten zurückzugeben.

Wenn Sie fertig sind, sehen Sie die function in der class.

Sie können dann das Verfahren durch so etwas ausführen:

 using (var context = new tempDBEntities()) { var type = context.spTemp(1); foreach (gType cs in gTypes) Console.WriteLine(cs.gType); } 

Ich habe das aus dem Tutorial hier angepasst, bitte lass es mich wissen, wenn du es klappst. Ich versuche, in Entity Framework upskill.

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