IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entity Framework Discussion :

Utilisation classes Entity Framework


Sujet :

Entity Framework

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    SUPINFO International University
    Inscrit en
    Novembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SUPINFO International University

    Informations forums :
    Inscription : Novembre 2011
    Messages : 62
    Par défaut Utilisation classes Entity Framework
    Bonjour à toutes et tous,

    Je débute avec Entity Framework, j'ai donc réussi à créer ma BDD et j'arrive à accéder aux données etc. J'ai aussi réussi à générer mes classe à partir de cette base.

    Mon problème est que je fais un application client/serveur en utilisant les WebServices. Donc pas de problème du côté de mon serveur puisque j'ai toutes mes classes. Mais côté client, c'est là que ça se complique, car je ne peux pas (ou n'arrive pas ?) réutiliser ces classes. Comment dois-je faire alors ?

    Car, prenons une classe Personne avec comme attributs un id et un nom pour faire simple, dans mon interface permettant d'accéder aux services offerts par le serveur, je pourrais avoir cette fonction :

    Personne insertPersonne(Personne p);

    Mais si je crée une autre classe Personne côté client cela ne fonctionnera plus car la définition d'une Personne ne sera plus la même pour le serveur que pour le client (je crois)...

    Enfin voilà j'espère que vous avez compris mon problème.

    D'avance merci !

  2. #2
    Invité
    Invité(e)
    Par défaut
    T'as dû générer un prxoy qui a entraîné la génération de la classe Personne côté client. Tu dois passer par le proxy pour l'insertion.

  3. #3
    Membre confirmé
    Homme Profil pro
    SUPINFO International University
    Inscrit en
    Novembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SUPINFO International University

    Informations forums :
    Inscription : Novembre 2011
    Messages : 62
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    T'as dû générer un prxoy qui a entraîné la génération de la classe Personne côté client. Tu dois passer par le proxy pour l'insertion.
    Bonjour H2S84,

    Mon problème n'est pas pour appeler la fonction en elle-même mais pour utiliser l'objet PERSONNE depuis le client.
    Côté serveur, la classe PERSONNE a été générée automatiquement par EntityFramework mais côté client je n'ai pas la classe PERSONNE.

  4. #4
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    La classe sera la même après sérialisation car elle a le même nom et les même attributs.

    Sinon, si tu n'as pas envie de récréer les classes coté client tu peux ne pas laisser Entity Framework te générer les classes, tu le fais toi même (Code First).
    Il faudra pour cela utiliser un assembly où tu déclares tes modèles (Personne...) et qui sera partagé par le serveur et par le client, tu peux utiliser les PCLs (portable class library).

    Tu utilises quel type de Web service? certains ne passes pas par des proxies.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Samyy17 Voir le message
    Mon problème n'est pas pour appeler la fonction en elle-même mais pour utiliser l'objet PERSONNE depuis le client.
    Côté serveur, la classe PERSONNE a été générée automatiquement par EntityFramework mais côté client je n'ai pas la classe PERSONNE.
    Si tes classes (Personne etc...) sont définies dans une DLL et que c'est cette même DLL qui est référencée par le client et le serveur alors il n'y a pas de raison que la classe Personne soit différente que l'on soit de l'un des deux côtés.

    Bref, je ne sais comment tu utilises ton service, mais réponds aux questions suivantes :
    • tu utilises WCF ou ASMX ?
    • tu généré un proxy ou tu passes par la classe ChannelFactory si tu utilises WCF ?
    • dans le cas de WCF, tes classes sont-elles des DataContract (contrats de données) ? Si oui sont-elles utilisées par au moins une opération de service (si tu passes par un proxy) ?

  6. #6
    Membre confirmé
    Homme Profil pro
    SUPINFO International University
    Inscrit en
    Novembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SUPINFO International University

    Informations forums :
    Inscription : Novembre 2011
    Messages : 62
    Par défaut
    Merci pour vos réponses.

    • J'utilise WCF
    • Je passe par la classe ChannelFactory
    • Ce sont des DataContract en effet et oui elles sont utilisées


    Pour créer les classes je l'ai fait à partir de mon modèle de données en faisant "Ajouter un élément de génération de code". Dois-je mettre les classes ainsi générées sans une dll ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Samyy17 Voir le message
    Pour créer les classes je l'ai fait à partir de mon modèle de données en faisant "Ajouter un élément de génération de code". Dois-je mettre les classes ainsi générées sans une dll ?
    Au vu de tes réponses tu es sur la bonne voie. Oui il faut mettre les classes générées par EF dans une DLL séparée et c'est cette dernière qui doit être reférencée à la fois par ton client et ton serveur.

    Sinon je te conseille d'utiliser la génération POCO ou l'approche Code First qui te permet de séparer le contexte EF de tes classes métiers. Le contexte sera dans une DLL (couche) d'accès aux données.

Discussions similaires

  1. Choisir la base de données fichier à utiliser avec Entity Framework
    Par Lucas Panny dans le forum Accès aux données
    Réponses: 10
    Dernier message: 01/08/2011, 16h03
  2. Réponses: 1
    Dernier message: 09/11/2009, 18h02
  3. Entity framework et Classe générique
    Par mrkinfo dans le forum Windows Forms
    Réponses: 6
    Dernier message: 28/06/2009, 15h38
  4. Réponses: 2
    Dernier message: 03/04/2009, 16h31
  5. Utilisation d'un framework PHP depuis des classes JAVA
    Par sharivaree dans le forum Langage
    Réponses: 3
    Dernier message: 12/10/2006, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo