Je travaille sur une application web Asp.net MVC traitant d'une base de données Oracle, et j'ai une page de tableau de bord de statistiques. J'utilise Entity Framework code-first avec ODP.Net, mais je suis confronté à un problème de performances sur cette page car les requêtes Entity Framework sont si complexes. Je dois donc convertir mes requêtes Entity Framework en procédures stockées.Comment appeler une procédure stockée dans Oracle à partir de .net framework?
Par exemple: Je crée la procédure stockée suivante dans Toad
CREATE OR REPLACE PROCEDURE Schema.DashBoardStatistics
(
-- Add the parameters for the stored procedure here
p_YearId number, cur OUT SYS_REFCURSOR
)
AS
BEGIN
-- select top 5 Fields By rating Rating
Open cur FOR Select * FROM Schema."Logs" where Schema."Logs"."Id"= p_YearId ;
END;
/
Comment ajouter une autre sélection à cette Sp pour retourner un jeu de données à mon code? Et comment puis-je l'appeler à partir de mon code et recevoir cet ensemble de données dans les classes de modèles?
Avis: Je veux utiliser la requête Entity Framework pour exécuter la procédure stockée n'ADO.NET Pour pouvoir cartographier ensemble de données de retour à mes entités
Merci!
Copie possible de [Appel de la procédure stockée Oracle à partir de C#?] (Http://stackoverflow.com/questions/3940587/calling-oracle-stored-procedure-from-c) – Igor
1. Vous pouvez mapper des entités à des procédures stockées mais personne ne va écrire le code pour vous. Votre meilleur pari est de suivre un tutoriel sur Entity Framework et procédures stockées (il y en a beaucoup là-bas). Essayez-le et revenez avec du code si vous êtes bloqué (* vous devez essayer *). 2. Si vous souhaitez exécuter manuellement le processus stocké et mapper les résultats à une entité, le lien en double est toujours valide dans une certaine mesure. – Igor
EF est bon pour CRUD. Pour cela - pas tellement. Ecrivez un modèle d'hydrateur qui peut correspondre au champ de jeu de résultats à une propriété sur un modèle. Comment faire 2 sélections? - 'p_YearId nombre, cur1 OUT SYS_REFCURSOR, cur2 OUT SYS_REFCURSOR' –