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

ASP.NET Discussion :

[MVC] Entity Framework


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    CUCARACHA
    Invité(e)
    Par défaut [MVC] Entity Framework
    Salut,

    Je cherche à extraire le nom du membre d'une classe de l'Entity Framework qui sert de clef primaire à des fins d'automatisation de génération de code.

    Quelqu'un sait si c'est jouable ?

    D'avance merci

    Laurent

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Tu veux faire quoi exactement ?
    L'ideal c'est de te baser sur le CSDL ou SSDL en fonction du niveau auquel tu veux placer ton générateur de code.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  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
    si tu regardes dans le fichier .designer.cs généré pour ton EDM, sur les propriétés clés tu as cet attribut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
    Donc il suffit de rechercher les propriétés qui ont cet attribut avec EntityKeyProperty = true :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var keyProperties = from prop in typeof(MyEntity).GetProperties()
                        let attr = Attribute.GetCustomAttribute(prop, typeof(EdmScalarPropertyAttribute)) as EdmScalarPropertyAttribute
                        where attr != null && attr.EntityKeyProperty
                        select prop;

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Oui c'est une solution mais baser un générateur de code sur un code généré à partir d'un modèle (généré aussi), ça me semble tordu.
    L'avantage de l'XML c'est que tu as le modèle de base, pas une représentation déjà retravaillée.

    My 2 cts.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  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 SaumonAgile Voir le message
    Oui c'est une solution mais baser un générateur de code sur un code généré à partir d'un modèle (généré aussi), ça me semble tordu.
    L'avantage de l'XML c'est que tu as le modèle de base, pas une représentation déjà retravaillée.

    My 2 cts.
    Certes... je suis allé au plus simple, mais il vaut sans doute mieux se baser sur le XML

  6. #6
    CUCARACHA
    Invité(e)
    Par défaut Merci
    Salut,

    Je vais en parler à mon client pour connaitre son sentiment sur la meilleure solution à prendre.

    Pour ma part je serais pour l'analyse de l'XML mais il est vrai que la solution objet m'a l'air super simple et très élégante.

    Merci et à bientôt

    Laurent

Discussions similaires

  1. [Débutant] Afficher les informations d'utilisateur courant ASP.NET MVC Entity framework
    Par risutsukoo dans le forum Développement Web avec .NET
    Réponses: 0
    Dernier message: 11/05/2015, 21h15
  2. Architecturer un projet MVC en N-tiers, avec entity framework
    Par Arnaud13 dans le forum ASP.NET MVC
    Réponses: 6
    Dernier message: 10/11/2013, 20h56
  3. Vs 2012/MVC 4: Entity Framework, comment atteindre les tables?
    Par sundyata37 dans le forum ASP.NET MVC
    Réponses: 3
    Dernier message: 10/09/2013, 10h25
  4. One to Many/One avec ASP.NET MVC et Entity Framework
    Par kaisser dans le forum Entity Framework
    Réponses: 6
    Dernier message: 17/08/2011, 22h55

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