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

Accès aux données Discussion :

Le Mapping Objet


Sujet :

Accès aux données

  1. #1
    Membre régulier Avatar de Orphey
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 58
    Points : 83
    Points
    83
    Par défaut Le Mapping Objet
    Bonjour à tous,

    Voilà je suis en train de réfléchir à la structure d'une futur application et je vais utiliser une couche application (asp.net) une couche business (BLL) et une couche d'accès aux données (DAL). Toutes ces couches auront accès à des objets de type "Data Transfer Object" DTO qui seront des objest avec uniquement des champs et pas de méthodes.

    Evidemment le but est que ces objets représentent en fait des tables de ma base de donnée.

    La couche d'accès au données a pour but de remplir le DTO avec les données de la table qui lui correspond. Alors voilà ma question, comment faire le mapping? Pour l'instant la DAL retourne une datatable et je fait le mapping "à la main" en faisant DTO_CHAMP_A = DataTable.Rows["CHAMP_A"]; etc...

    Y-a-t'il un moyen plus intelligent de faire?
    On m'a parlé des listes génériques??

    Merci d'avance pour vos réponses..

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    Hello,

    Si tu utilises la dernière version de entity framework (dans .NET 4) comme DAL, celui-ci peut te générer soit des POCO simples, soit des self tracking entities. (des espèces de POCO qui se souviennent de leur état initial, ce qui est très pratiques en evironnement client/serveur.

    Christophe

  3. #3
    Membre régulier Avatar de Orphey
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 58
    Points : 83
    Points
    83
    Par défaut
    Voilà j'ai trouvé une solution, créer une extension pour la classe DataTable avec une methode ToList qui, grace a reflector va chercher les elements de la classe a remplir et le rempli par le Row[NOM_DU_CHAMP] de la DataTable..

    Enfin voila le code:
    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
    25
    26
    27
    28
     
     
    public static class DataTableExtensions
    {
       public static IList<T> ToList<T>(this DataTable table) where T : new()
       {
          IList<PropertyInfo> properties = typeof(T).GetProperties().ToList();
          IList<T> result = new List<T>();
     
          foreach (var row in table.Rows)
          {
             var item = CreateItemFromRow<T>((DataRow)row, properties);
             result.Add(item);
          }
     
          return result;
       }
     
       private static T CreateItemFromRow<T>(DataRow row, IList<PropertyInfo> properties) where T : new()
       {
           T item = new T();
           foreach (var property in properties)
           {
               property.SetValue(item, row[property.Name], null);
           }
           return item;
       }
    }
    Merci!

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

Discussions similaires

  1. [Castor] Mapping Objet Java
    Par mezoo dans le forum Persistance des données
    Réponses: 4
    Dernier message: 01/09/2006, 16h24
  2. [SQL] Abstraction BDD et mapping objet/relationnel
    Par Invité dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/07/2006, 13h35
  3. [JavaBean] mapping objet/objet quel outil?
    Par willy78 dans le forum JDBC
    Réponses: 2
    Dernier message: 23/01/2006, 23h55
  4. [Strategie]Classes de mapping & Objets métier
    Par yanis97 dans le forum JDBC
    Réponses: 19
    Dernier message: 16/05/2005, 09h57
  5. [Conseil] Affichage maps + objets
    Par Mathieu.J dans le forum OpenGL
    Réponses: 4
    Dernier message: 04/06/2004, 14h35

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