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

C# Discussion :

"empreinte digitale" d'un objet


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut "empreinte digitale" d'un objet
    Bonjour,

    j'aimerais savoir si il ya un moyen d'identifier un objet, par une chaine de caractere ou une clef par exemple.

    le but et d'avoir une liste d'objet, de stockè leur informations en base.

    le problème se pose lors de mise a jour et suppresion. il faut savoir qu'un certain objet correspondant a un certain enregistrement(en base) et inversement.


    suis je clair? je ne sais pas trop....

    il me faudrais un outils me permettant d'identifier de maniere unique un objet instancier. sous le meme principe que les empreinte digital d'un etre humain

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    J'aurais tendance à penser que le hash code des objets pourrait être utilisé (méthode Object.GetHashCode). Mais je crois que rien ne garanti son unicité, inutilisable pour un lien durable donc. D'autant plus qu'entre plusieurs exécutions un même objet peut avoir des hash code différent il me semble.

    Il serait plus simple, dans tes objets, de faire un lien vers l'enregistrement en base associé (l'enregistrement a bien un identifiant ?), et lorsque tu dois modifier / "détruire" l'objet tu mets à jour l'enregistrement au passage.

  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 : 43
    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
    Par défaut
    sinon tu peux utiliser une solution ORM (mapping objet/relationnel), type Linq to SQL (si tu utilises SQL Server comme BDD), Entity Framework (encore en beta), ou NHibernate.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    l'identifiant, dans la logique des choses serais l'identifiant de l'objet....

    le GetHashCode se genere a partir des donnèes(je presume?) donc il va changer en cour d'utilisation


    le mapping objet, c'est en cela que consiste mon projet

    je doit donc pouvoir l'utiliser sur un objet de tout type(sans champ specialement dediè a la mise en base)

    ensuite pour le mapping objet je l'ai utiliser avec Vanatec OpenAccess en stage

    j'aimerais maintenant avoir mon propre programme de mise en base d'objet(moins puissant certe)


    tomlev => je ne connais pas tes solutions, yen a t-il une qui me donne un resultat generalisable (sql serveur, mysql.............)

  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 : 43
    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
    Par défaut
    Citation Envoyé par TheBlackReverand Voir le message
    je doit donc pouvoir l'utiliser sur un objet de tout type(sans champ specialement dediè a la mise en base)
    ça ce n'est pas possible : il faut au moins un identifiant qui corresponde à l'identifiant en base
    Citation Envoyé par TheBlackReverand Voir le message
    tomlev => je ne connais pas tes solutions, yen a t-il une qui me donne un resultat generalisable (sql serveur, mysql.............)
    Entity framework et NHibernate sont indépendants de la BDD utilisée

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    voici un exemple du resultat voulus

    class toute simple representant un eleve par son nom, prenom et age
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class Eleve
    {
        public string Nom;
        public string Prenom;
        public int Age;
    }
    dans ma base j'aurais donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    id_Eleve
    nom
    prenom
    age
    avec pour id_Eleve l'empreinte de mon objet

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

Discussions similaires

  1. Gerer les empreintes digitales dans un SGBDR.
    Par WOLO Laurent dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 31/12/2004, 12h26

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