1

私はEFとMVCでかなり新しいです。しかし、私はMCV5とビューを備えたスキャフォールドページを作成することができました。 私はWebフォームとEFのコンセプトに違いがあることを理解しています。しかし、SSMSで作成されたストアドプロシージャを実行することは可能ですか? ストアドプロシージャが必要とするパラメータで2つのテキストボックスを取り込む2つのテキストボックスを持つWebページを持つ機能が必要です。両方のパラメータが文字列であり、結果がWebグリッドに表示されます。 これはEFコードとMVCのどちらでも可能ですか?ef 6とコードが最初に格納されたプロシージャ

私のストアドプロシージャのコードは次のとおりです。

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 

答えて

0

はのは、あなたのSPは、この(あなたの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 

ストアドプロシージャによって返された結果と同じプロパティ名を持つオブジェクトを作成する必要があります。これは次のようなものです。

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

      public string DepCity { get; set; } 

      public string ArvCity { get; set; } 

     } 

次に、SPを次のように呼び出します。

注:DatabaseContext()にアクセスできる場合は、class fileに入力してください。

using(var context = new DatabaseContext()) 
     { 
     var depCityParameter = new SqlParameter("@DepCity", "colombo"); 
     var arvCityParameter = new SqlParameter("@ArvCity", "matara"); 

     var results = context.Database.SqlQuery<RouteForAirline>("sp_FindRoutes @DepCity, @ArvCity",depCityParameter,arvCityParameter).ToList(); 
     } 

以下のリンクを使用して詳細を読むことができます。

Code First Insert/Update/Delete Stored Procedures

Stored Procedures with Multiple Result Sets

+0

おかげで、SPコールは私も考え出したが、私はそれを両方のパラメータを渡すために持っていた場合はどのようにコードがどうなるかについてです。 – user2371684

+0

sp呼び出し自体はどこに置かれていますか?同じクラスファイルか、dbcontextファイルにありますか? – user2371684

+0

私は答えを更新しました。それを見てください。 – Sampath

関連する問題