2

私は最初のASP.NET MVC 5アプリケーションを開発中で、ストアドプロシージャの呼び出し方法がわかりません。私がプロジェクトを開始したとき、私はADO.NET Entity Data Model、EF Designerを使用していました。私が望むテーブルとストアドプロシージャを選択したモデルを作成すると、うまくいきました。私は「usp_RhAffSelect」と呼ばれるストアドプロシージャを使用したい場合たとえば、私は単にするだろう:MVC 5&Entity Framework 6のストアドプロシージャを最初に使用する

using (EmployeModele db = new EmployeModele()) 
     {var AffectationEmploye = db.usp_RhAffSelect(employeID, sequence).ToList(); 
... 

と選択クエリからの結果が「AffectationEmploye」

に格納されるだろう。しかし、その後私が持っていたが私のモデルをEF Designerではなく最初にコードに変更してください。私が望むテーブル(RhAff、RhEmp、RhEve)を選択しました。だから私はメソッド内のすべての私のテーブルフィールドを記述する私のMainModel.cs(これは私のDbContextです)があります。また、3つの部分クラス(RhAff.cs、RhEmp.cs、RhEve.cs)もあり、それぞれのフィールドについても説明しています。

今、ストアドプロシージャの使用方法がわかりません。それは私がMapToStoredProceduresを使用することができますが、私の理解から、私は挿入、更新、および削除クエリを再定義することができます。

モデルに選択ストアドプロシージャを呼び出すにはどうすればよいですか?または特にストアドプロシージャ? EF Designerを使用していたときに、edmxファイルのテーブルを右クリックするだけで、「データベースから更新」を選択すると、必要なストアドプロシージャを選択して後で使用できるようになりました。

答えて

0

以下のようにすることができます。

注:これは一例です。

SP

CREATE procedure [dbo].[CountOfOrders] 
    @ProductId int 
AS 
SELECT Count(*) From Orders o 
INNER JOIN OrderDetails od ON od.OrderID = o.OrderID 
WHERE od.ProductID = @ProductId 

はどのようにそれを呼び出す:

SqlParameter param1 = new SqlParameter("@ProductID", 72); 
var totalOrders = await context.Database.SqlQuery<int>("CountOfOrders @ProductID", param1).SingleAsync(); 

Entity Framework Code First and Stored Proceduresの記事をお読みください。

関連する問題