mardi 11 février 2014

Comment appeler une procédure stockée avec Entity FrameWork ?


Avant de répondre à cette question il peut être utile de parler des avantages et désavantages à utiliser des procédures stockées.
Avantages:

1) Pour certains traitements cela peut augmenter les performances de l'application.

2) Cela peut être un moyen d'empêcher les utilisateurs d'avoir un accès directe à la base de donnée.

3) C'est un moyen de gérer des traitements SQL compliqués. 

Désavantages:

1) La logique applicative se trouve déportée dans des endroits différents

2) Vous devez connaitre  le Transact Sql ou le PL SQL selon que vous utlisiez SQL Server ou Oracle.

Avec Entity Framework je pense que l'avantage 2 peut être éliminée parce que nous travaillons avec des entités et avant que nous puissions supprimer ou créer un enregistrement nous devons créer un objet, l'ajouter au contexte courant et ensuite appeler une méthode sauvegarder ou valider. Aucune opération de création, lecture, mise à jour ou de suppression n'est directement effectué en base.

L'avantage 3 n'en est plus une parce avec Linq to Entities il est possible de faire n'importe qu'elle traitement complexe pouvant interagir avec la base de donnée.


Appeler une procédure stocké avec Entity Framework :

Pour mettre à jour votre modèle afin qu'il prenne en compte une procédure stockée nouvellement crée :  

Faire un clique droit dans le designer (Model de donnée Entity FrameWork)

L'assistant création de base de donnée apparaît. On sélectionne la procédure stockée désirée et on clique sur terminer. Dans l'explorateur de model on clique avec le bouton droit de la souris sur notre procédure stockée et l'on choisie "Ajouter le model d'import" dans le menu contextuel. Cela créera une fonction dans notre projet avec les paramètres d'appel de la procédure stockée. Maintenant  notre fonction est accessible à partir du Context.

Une autre façon d'appeler une procédure stockée est d'appeler la méthode de Contexte SqlQuery.

lundi 3 février 2014

How to call a stored procedure with Entity FrameWork



Before answering to this question it can be a good thing to point out the advantages and disadvantages of using stored procedures.

 

Advantages:

1) For some treatment it can increase the application performance.

2) It can be a way of preventing user from having direct access to the database.

3) It makes it easier to deal with complex SQL treatment.

 

Disadvantages:

1) The logic of your application is located in different places.

2) You have to know Transact Sql or PL SQL whether you use SQL Server or Oracle.

 

With Entity Framework I think the advantage 2 could be eliminated because we are working with Entities and before we can delete or create a record we have to create an object ,add it to the current context and then call a save or commit method. We are not performing any direct CRUD operation to a database table.

The advantage 3 is no more an advantage because with link to entities it is possible to do any complex operation.

 

Calling a stored procedure with Entity Framework :

 

If the stored procedure has just been created.

Right Click on the designer (Entity Data Model) and click “Update model from database”.

A database wizard popup appears and then we select the desired stored procedure. We click finish. In the model browser we right click on our stored procedure and choose “Add model import” in the contextual menu. That will create a function in our project with the correct parameter for the function. Now the function could be executed from the context.

Another way to call a store procedure is to call the context method SqlQuery.

http://www.devolution-it.com/