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 :

Creation d'un Entity Model depuis un Model UML


Sujet :

Entity Framework

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 115
    Points
    115
    Par défaut Creation d'un Entity Model depuis un Model UML
    Bonjour à tous,

    Entity Framework est assez nouveau pour moi, et j'ai du mal à comprendre certains concepts.

    Donc en faite voila, j'ai éffectuer mon analyse, et produis un diagramme de classe. J'ai maintenant une librairie de classe qui me sert de model pour mon application.

    Mais voilà, comment générer mon model Entity Framework depuis mes classes c# ?

    Merci,

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 115
    Points
    115
    Par défaut
    Bon ben j'ai trouvé une idée qui me semble satisfaisante...
    D'un côté j'aurais mon entity model, de l'autre côté mes classes métier et entre les deux je vais implémenter un pattern DAO...

    Qu'en pensez-vous?

  3. #3
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Pas super comme idée, l’intérêt d'entity framework c'est justement de mapper ton model sur la base pas de multiplier les models.

    si tu as déjà fait tes classes c'est que tu as une approche "code first" cette approche est possible avec Entity Framework 4.1 qui gère le code first, il devrait t'aider à mapper tes objets sur une base de données.

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 249
    Points : 357
    Points
    357
    Par défaut
    Quelle version de Visual Studio utilises-tu ?

    En 2010, tu peux créer ton modèle (edmx) et générer ensuite la base de données associée.

    Tu auras ainsi créé la couche d'accès aux données.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par EMC51 Voir le message
    Quelle version de Visual Studio utilises-tu ?

    En 2010, tu peux créer ton modèle (edmx) et générer ensuite la base de données associée.

    Tu auras ainsi créé la couche d'accès aux données.
    J'utilise bien VS2010...
    Mais si j'utilise les classe générée par EF, je perds toute la logique de mon diagramme de classe...

    Je comptais donc implementer un pattern DAO entre les deux

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 249
    Points : 357
    Points
    357
    Par défaut
    Justement tu aurais du faire le contraire.

    Par exemple crée un modèle Entity avec une entité Bipede qui a comme propriété Id, Nom, Prénom (le bipède de base).

    On nomme le Namespace BipedeSpace.

    Ensuite, tu crée une classe partielle qui va venir enrichir ton entité par des méthodes ou autres, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    namespace BipedeSpace
    {
        public partial class Bipede
        {
            bool BienSaisi()
            {
                return (this.Nom != "") && (this.Prenom != "");
            }
        }
    }
    Par contre, je n'ai pas encore vu que l'on puisse transformer un classDiagram en EntityModel, à moins de réussir à créer une BD SQL par du reverse et de créer ensuite le modèle depuis la BD...

    Tu as beaucoup d'entités dans ton modèle ?

  7. #7
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Quelle version de Visual Studio utilises-tu ?

    En 2010, tu peux créer ton modèle (edmx) et générer ensuite la base de données associée.

    Tu auras ainsi créé la couche d'accès aux données.

    C'est une très mauvaise pratique qui a amené bien des projets basé sur des ORM dans le mur...

    Modélisez votre base dans les règles de l'art (primary key , foreign key, contraintes not null et d'unicité etc.)
    Et vous verrez que votre modèle edmx généré à partir sera nickel...
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  8. #8
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 249
    Points : 357
    Points
    357
    Par défaut
    C'est vrai que je commence aussi pas créer une BD correcte, mais rien n'empêche de commencer le modele EDMX et d'apporter les modifications nécessaire à la base générée.

  9. #9
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Citation Envoyé par iberserk Voir le message
    C'est une très mauvaise pratique qui a amené bien des projets basé sur des ORM dans le mur...

    Modélisez votre base dans les règles de l'art (primary key , foreign key, contraintes not null et d'unicité etc.)
    Et vous verrez que votre modèle edmx généré à partir sera nickel...
    Ca a amenée bien des projet dans le mur alors que la techno a 1 an ?

    La génération de modèle physique par EF4 est très correct et peu bien sûr être optimisé dans certain cas comme pour l'héritage.

  10. #10
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Ca a amenée bien des projet dans le mur alors que la techno a 1 an ?
    LINQ TO ENTITES un an???? la V2 peut-être...

    Et je parlais des ORM en général pas seulement LINQ TO ENTITIES.
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  11. #11
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    EF ne génère la base de données que depuis la v4 soit il y a 1 an.

    Ensuite EF est un outil d’accès a la base qui permet de faire des choses tres propres et performante.

    J'ai vu beaucoup de personne dire que les applications EF sont lente et que ca serait beaucoup plus rapide en Procstoc.

    Et je vois ces personne faire uniquement des procstoc de select* qui sont post filtré dans l'application ou encore des getbyid fait une 20ene de fois pour récupérer tout un graph d'objet

  12. #12
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    J'ai vu beaucoup de personne dire que les applications EF sont lente et que ca serait beaucoup plus rapide en Procstoc.

    Et je vois ces personne faire uniquement des procstoc de select* qui sont post filtré dans l'application ou encore des getbyid fait une 20ene de fois pour récupérer tout un graph d'objet
    J'utilise personnelement tous les jours LTE puisque je suis responsable du développement BDD et de l'intégration des couches basses sur des applicatifs .NET: j'abonde dans votre sens quant aux mauvaises pratiques des développeurs LAMBDA sur l'accès aux données c'est une catastrophes, ils ne percoivent la base de données que comme un simple moyen de stockage de leurs données...

    LINQ TO ENTITES, ORM déjà très avancé leur permet de s'éloigner encore d'avantage des problématiques SQL.

    Et vive le lazyloading dans des foreach avec à la clé un nombre exponentielle de requète pour afficher une grile :-)


    En fait les problèmes de performances liées à LTE sont surtout dûes au UPDATE/INSERT/DELETE qui ne sont pas fait de manière ensembliste...
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  13. #13
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Je suis ok pour ce coté là, clairement EF n'est pas fait pour les bulk insert et c'est assez dommage car ce n'est pas si dur à implémenter.

    Dans ces cas la le mieux est de le faire en sql.

Discussions similaires

  1. load instance d'un model depuis store
    Par blacksf dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 17/10/2012, 07h27
  2. appel d'un model depuis un autre model
    Par jeanson dans le forum Zend Framework
    Réponses: 1
    Dernier message: 21/02/2012, 13h21
  3. [Joomla!] Creation d'extension Joomla : Recuperation données du model
    Par jijis dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 15/12/2011, 16h00
  4. Appel model depuis librairie
    Par urubs dans le forum CodeIgniter
    Réponses: 1
    Dernier message: 14/11/2011, 12h08
  5. Générer une requête SQL depuis un model physique
    Par Ryan Sheckler dans le forum Requêtes
    Réponses: 4
    Dernier message: 01/12/2005, 12h11

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