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 :

Entity Framework - GetById


Sujet :

Entity Framework

  1. #1
    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 Entity Framework - GetById
    Bonjour,

    Dans le cadre d'un framework encapsulant divers ORM j'essaie d'implementer cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public T GetById(object id)
    {
    ...
    }
    Si avec des framework comme nhibernate cette méthode est fourni d'office, cela n'a pas l'air d'être le cas avec entity framework ... c'est embêtant !

    Quelqu'un à une idée de comment je pourrais implémenter cette méthode ? Ou comment je pourrais détécter pour un type T quel est sa(ses?) propriété(s) d'identifiant sachant que c'est un objet mappé à entity framework ?

    Attention je ne souhaite pas utiliser d'entity object mais plutôt des POCO.

    Merci

  2. #2
    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
    C'est bon j'ai trouvé, il suffit de se balader dans les metadatas de l'entityset et on trouve la propriété qui identifie l'objet

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 177
    Points : 130
    Points
    130
    Par défaut
    Est ce que tu pourrais mettre le code de ta solution, ça pourrait intéresser certain (dont moi )

  4. #4
    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
    c'est dans mon framework Arch#

    Voici le code sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public override T Load(object id)
    {
        if (id is EntityKey)
            return Dal.GetObjectByKey(id as EntityKey) as T;
        else
        {
            var idProperty = ObjectSet.EntitySet.ElementType.Properties
                .FirstOrDefault(p => p.MetadataProperties.Any(mp => mp.PropertyKind == PropertyKind.Extended && "Identity".Equals(mp.Value)));
     
            return Dal.GetObjectByKey(new EntityKey(ObjectSet.EntitySet.EntityContainer.Name + "." + ObjectSet.EntitySet.Name,
                new EntityKeyMember[] { new EntityKeyMember(idProperty.Name, id) })) as T;
        }
    }
    Une mise en cache de ce traitement ferrait pas de mal

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/08/2008, 10h36
  2. ADO.NET Entity Framework, Astoria, Silverlight -> .NET 3.5 ?
    Par rad_hass dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 08/07/2008, 16h01
  3. version final d'Entity framework
    Par korchimustapha dans le forum Général Dotnet
    Réponses: 8
    Dernier message: 04/07/2008, 17h21
  4. [ADO.NET Entity Framework] génération des tables
    Par anthyme dans le forum Accès aux données
    Réponses: 3
    Dernier message: 22/02/2008, 17h44
  5. Linq - Entity Framework
    Par Jfrancois57 dans le forum Framework .NET
    Réponses: 11
    Dernier message: 12/02/2008, 08h06

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