Sto lavorando alla mia prima applicazione ASP.NET MVC 5 e non sono sicuro di come chiamare le mie stored procedure. Quando ho iniziato il progetto, stavo usando il modello di dati di entità ADO.NET, EF Designer, quando ho creato il modello ho scelto le tabelle e le stored procedure che volevo e funzionava bene. Ad esempio, se volessi utilizzare una stored procedure chiamata 'usp_RhAffSelect', farei semplicemente:
using (EmployeModele db = new EmployeModele())
{var AffectationEmploye = db.usp_RhAffSelect(employeID, sequence).ToList();
...
e il risultato della query selezionata verrebbe archiviato in 'AffectationEmploye'
Ma poi ho dovuto cambiare il mio modello in codice prima invece di EF Designer. Ho selezionato le tabelle che volevo (che sono RhAff, RhEmp e RhEve). Quindi ho il mio MainModel.cs
(che è il mio DbContext
) che descrive tutti i campi delle mie tabelle all'interno del metodo OnModelCreating
. Ho anche 3 classi parziali (RhAff.cs, RhEmp.cs e RhEve.cs) che descrivono anche i rispettivi campi.
Ora non so come usare le mie stored procedure. Sembra che io possa utilizzare MapToStoredProcedures
ma dalla mia comprensione posso solo ridefinire l'inserimento, l'aggiornamento e l'eliminazione delle query.
Come posso chiamare una procedura memorizzata di selezione per i miei modelli? O qualsiasi stored procedure in particolare? Quando stavo usando EF Designer, dovevo semplicemente fare clic con il tasto destro su un tavolo nel mio file edmx e selezionare "Aggiorna dal database", sceglierei quale stored procedure volevo ed ero in grado di usarli dopo.
Puoi farlo come mostrato di seguito.
Nota: questo è solo un esempio.
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
Come chiamarlo:
SqlParameter param1 = new SqlParameter("@ProductID", 72);
var totalOrders = await context.Database.SqlQuery<int>("CountOfOrders @ProductID", param1).SingleAsync();
Si prega di leggere l'articolo del codice di Entity Framework e dell'articolo sulle stored procedure .