1

Ich bin ziemlich neu in EF und MVC. Aber ich habe es geschafft, gerüstete Seiten mit MCV5 und Ansichten zu erstellen. Ich verstehe, dass es einen Unterschied im Konzept zwischen Webforms und EF gibt. Aber ist es mir möglich, eine Stored Procedure auszuführen, die in SSMS erstellt wird? Ich möchte die Möglichkeit haben, eine Webseite mit zwei Textfeldern zu haben, die die beiden in-Parameter aufnehmen, die die gespeicherte Prozedur benötigt, wobei beide Parameter Strings sind und dann das Ergebnis in einem Web-Grid anzeigen. Ist dies mit EF-Code zuerst und MVC möglich?Gespeicherte Prozeduren mit ef 6 und Code zuerst

Der Code für meine gespeicherten Prozedur ist:

CREATE PROCEDURE [dbo].[sp_FindRoutes] 

@DepCity nvarchar(max), 
@ArvCity nvarchar(max) 

AS 

-- SET NOCOUNT ON added to prevent extra result sets from 
-- interfering with SELECT statements. 
SET NOCOUNT ON; 

SELECT dbo.Airlines.AirlineName, dbo.Routes.DepCity, dbo.Routes.ArvCity, dbo.Routes.FlightNr, dbo.AirlineRoutes.Fare, dbo.AirlineRoutes.AircraftAllocated 
FROM dbo.Routes INNER JOIN 
     dbo.AirlineRoutes ON dbo.Routes.RouteId = dbo.AirlineRoutes.RouteId INNER JOIN 
     dbo.Airlines ON dbo.AirlineRoutes.AirlineId = dbo.Airlines.AirlineId 
     WHERE dbo.Routes.DepCity LIKE @DepCity AND dbo.Routes.ArvCity LIKE @ArvCity; 
GO 

Antwort

0

sagen Lassen Sie Ihre SP wie dieser ist (nur eine einfache Version Ihrer SP).

CREATE PROCEDURE [dbo].[sp_FindRoutes] 
    @DepCity string 
    AS 
    BEGIN 
    SET NOCOUNT ON; 

    SELECT dbo.Airlines.AirlineName, dbo.Routes.DepCity, dbo.Routes.ArvCity 
    FROM dbo.Routes 
    WHERE dbo.Routes.DepCity= @DepCity 
    END 

Sie haben ein Objekt zu erstellen, die die gleichen Eigenschaftsnamen wie die Ergebnisse hat durch die gespeicherten procedure.It ist wie diese zurückgegeben.

public class RouteForAirline 
     { 
      public string AirlineName { get; set; } 

      public string DepCity { get; set; } 

      public string ArvCity { get; set; } 

     } 

Dann rufen Sie Ihren SP wie unten gezeigt.

Hinweis: Sie können dies auf die class file setzen, wenn Sie auf die DatabaseContext() zugreifen können.

Sie können mehr über die unten erwähnten Links lesen.

Code First Insert/Update/Delete Stored Procedures

Stored Procedures with Multiple Result Sets

+0

Dank, ist der SP-Anruf über das, was ich heraus auch, aber, wie der Code wäre, wenn ich es beiden Parameter musste vergehen. – user2371684

+0

Und der SP Anruf selbst, wo ist platziert? Befindet es sich in derselben Klassendatei oder in meiner dbcontext-Datei? – user2371684

+0

Ich habe die Antwort aktualisiert. Bitte sehen Sie das. – Sampath