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

Windows Forms Discussion :

Entity framework et Classe générique


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 142
    Points : 93
    Points
    93
    Par défaut Entity framework et Classe générique
    Bonsoir,

    J'ai un petit souci avec EF et les classes génériques je m'explique :

    Une fois les classes généré dans le model je trouve des méthodes telque
    AddToClient, AddToProduit....
    Habituellement avec Nhibernate je crée une classe générique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     public class BaseDao<TEntity,TId>: HibernateDaoSupport, IBaseDao<TEntity,TId>
       {
     
           #region IGenericDao<TEntity,TId> Members
     
     
     
           public IList<TEntity> GetAll()
           {
               return HibernateTemplate.LoadAll<TEntity>();
           }
    .........
     
     
           {
    alors je viens vers vous pour savoir comment faire la meme chose avec EF sachant que les méthodes sont du genre AddToNomdelaClasse.

    merci d'avance

    Framework 3.5,C#

  2. #2
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 142
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    est ce que la réfléction me permet de résoudre ce problème?

    J'ai des doutes concernant cette façon de faire niveau perf et maintenabilité de l'application

    merci j'attend vos réponses

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    sachant que les méthodes sont du genre AddToNomdelaClasse.
    Tu n'es pas obligé d'utiliser ces méthodes : tu peux aussi utiliser AddObject(entitySetName, entity)

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Tu n'es pas obligé d'utiliser ces méthodes : tu peux aussi utiliser AddObject(entitySetName, entity)
    Sauf que c'est le nom du Set qui est demandé, et pas le nom de l'entité : et là ça se corse...

    ex : Si tu as une entité Customer, par défaut ton Set s'appelle Customer ; mais si tu l'appelle Customers, toute les démonstrations que j'ai vu tombe à l'eau.

    EF génère ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    /// <summary>
            /// There are no comments for Customers in the schema.
            /// </summary>
            public global::System.Data.Objects.ObjectQuery<Customer> Customers
            {
                get
                {
                    if ((this._Customers == null))
                    {
                        this._Customers = base.CreateQuery<Customer>("[Customers]");
                    }
                    return this._Customers;
                }
            }
            private global::System.Data.Objects.ObjectQuery<Customer> _Customers;
     
    /// <summary>
            /// There are no comments for Customers in the schema.
            /// </summary>
            public void AddToCustomers(Customer customer)
            {
                base.AddObject("Customers", customer);
            }
    Par réflexion j'arrive à choper le Set, mais pour son nom, je planche un peu...

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Chubyone Voir le message
    Par réflexion j'arrive à choper le Set, mais pour son nom, je planche un peu...
    Comment ça ? qu'est-ce que tu as fait, et qu'est-ce qui te manque ?

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 142
    Points : 93
    Points
    93
    Par défaut
    bonjour
    merci pour vos réponses par contre j'arrive pas à mettre en place ta solution:

    Citation Envoyé par tomlev Voir le message
    Tu n'es pas obligé d'utiliser ces méthodes : tu peux aussi utiliser AddObject(entitySetName, entity)


    J'ai une architecture en couche représenté par des projet sous VS2008.

    couche Modèle : contient plusieurs modèles
    Couche service : contient mes méthodes génénrique
    Couche Business : traitement
    couche Client : présentation


    Sachant que service référence modèle j'arrive pas a faire dans ma classe générique AddObject().

    sinon est ce que le fait de renommer les methodes généré peut etre correcte?


    merci

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 142
    Points : 93
    Points
    93
    Par défaut
    j'ai rien dit

    Il suffit d'ajouter une référence System.Data.Entity dans le projet service

    merci a vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Entity Framework - Classe DAL générique?
    Par -N4w4k- dans le forum VB.NET
    Réponses: 4
    Dernier message: 05/04/2012, 15h17
  2. Réponses: 1
    Dernier message: 09/11/2009, 18h02

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