Accueil
Articles
Astuces
Vidéos
Actualités
Auteurs
A propos
Contact
S'enregistrer
|
S'identifier
S'identifier
Authentification invalide
N
om d'utilisateur
M
ot de Passe
S
e souvenir de moi la prochaine fois.
S'identifier
Annuler
S'enregistrer
Mot de passe oublié ?
Les bases d'Entity Data Model
Avec EDM, l'Entity Framework permet d'assurer l'indépendance entre les entités et le modèle de persistance et authorise un mapping très puissant
Par
Matthieu Mezil
publié le 24/03/2008 à 11:37, lu 8105 fois, 7 pages
24 commentaire(s)
Tags:
ADO.NET
,
C#
,
Linq
,
Framework .NET
,
Visual Studio 2008
5 | Les fonctions ssdl
1 | Introduction
2 | La création d'un EDM
3 | Les différentes classes
4 | Les manipulations possibles avec EDM
5 | Les fonctions ssdl
6 | Les vues
7 | Conclusion
Les fonctions ssdl
Une fonction ssdl est soit une procédure stockée, soit une commande sql directement définie dans le ssdl.
Dans EDM, il y a deux types de fonctions ssdl :
les fonctions de type Create Update Delete
les fonctions de type Read
Pour utiliser des procédures stockées, il faut dans un premier temps les avoir importées dans le modèle (dans la description de la base). Ceci se fait facilement via l'écran « Choose your DataBase Objects » du wizard vu au début.
Les fonctions ssdl de type CUD
Dans la version 1 d'EDM, si le développeur souhaite utiliser une function ssdl de type CUD, il est obligé d'utiliser une fonction pour chacune des trois opérations (INSERT, UPDATE, DELETE).
Pour l'exemple, Customer et Member seront réduits (voir le schéma suivant), avec CustomerID définit comme un entier auto-incrémenté côté base.
Dans la fenêtre Mapping Details, il suffit de mapper les paramètres des fonctions ssdl avec les propriétés de l'entité.
Dans le Insert, la flèche de la colonne Operator est dans l'autre sens pour CustomerID. En effet, c'est bien la base qui va renseigner la propriété et non l'inverse (la valeur étant calculée par la base). Dans le cas présent, la fonction ssdl est la suivante :
INSERT INTO
Customers ([Name])
VALUES
(@Name)
SELECT SCOPE_IDENTITY
()
as
CustomerID
Pour l'Update, il est possible de définir la version à utiliser : Current ou Original.
Les relations
Pour Member, supposons que le INSERT effectue préalablement un INSERT dans Customer. De même, supposons que le UPDATE de Member possède le paramètre Name de Customer.
Il va donc falloir mapper via la relation :
L'héritage
Dans le cas d'un héritage, si la classe de base effectue ses opérations de CUD par fonctions ssdl, il devra en être de même pour ces classes filles et inversement.
Les fonctions ssdl de type SELECT
Dans ce cas, il va falloir importer la procédure stockée du ssdl (qui décrit la base de données) vers le csdl (qui décrit les entités).
Suite à cela, il faut définir le nom de la méthode à créer et le type de retour de celle-ci. Ce type peut être un type de base (string, int, etc.), rien du tout (void) ou une entité définie dans le csdl.
Une fois cela effectué, la classe TestEntities (qui hérite de ObjectContext) contient une nouvelle méthode.
1
2
3
4
5
6
7
»
Démarrer une discussion
Lier à des fonction Linq To Sql
Chargement ...
Discussion démarée par
DadvDadv
le 14/08/2008 à 00:38, 15 commentaire(s).
La présence de cet outil semble varier selon les versions de Visual Studio
Chargement ...
Discussion démarée par
Frédéric Decréquy
le 05/04/2008 à 12:00, 3 commentaire(s).
Création de Base de donnée
Chargement ...
Discussion démarée par
IDoCoX
le 28/04/2009 à 12:22, 2 commentaire(s).
Insertion avec EF
Chargement ...
Discussion démarée par
DadvDadv
le 01/09/2008 à 22:57, 2 commentaire(s).
Et la table intermediaire contenant d'autres champs que des clefs ???
Chargement ...
Discussion démarée par
Aurelbeef
le 04/03/2009 à 18:00, 2 commentaire(s).
Ecrire un commentaire
Titre
Commentaire
Annuler