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 :

Ajouter des attributs à une classe générée automatiquement par Entity [Débutant]


Sujet :

Entity Framework

  1. #1
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut Ajouter des attributs à une classe générée automatiquement par Entity
    Bonjour,

    J'ai un model edmx avec une table : Affaire
    J'ai plusieurs property : IdAffaire ... IdAvancement et IdTypeChantier

    Pour des traitements automatiques sur des classes manuelles j'utilise
    Code vb.net : 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
    <AttributeUsage(AttributeTargets.Property, Inherited:=False, AllowMultiple:=True)>
        Public Class TFOAttribute : Inherits Attribute
            Private _name As String
     
            Public Sub New(ByVal name As String)
                Me.Name = name
            End Sub
     
            Property Name() As String
                Get
                    Return _name
                End Get
                Set(ByVal value As String)
                    Me._name = value
                End Set
            End Property
        End Class
    Je voudrai attribuer aussi de tels attributs à ma classe générée automatiquement par entity de la manière suivante
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <TableFullOption.TFOAttribute("Key")> Property IdAffaire As Integer
        <TableFullOption.TFOAttribute("FK_Avancement")> Property Avancement As String
        <TableFullOption.TFOAttribute("FK_TypeChantier")> Property TypeChantier As Integer
    Ce qui sort une erreur : normale j'essaie d'ajouter des property existant.

    J'ai trouvé : http://ardalis.com/Adding-Attributes...erated-Classes Mais je n'arrive pas à mixer les 2.

    Quelqu'un peut m'aider?

    Merci

  2. #2
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut
    En grattant encore ce matin j'ai trouvé http://msdn.microsoft.com/en-us/libr...code-snippet-1

    J'ai ajouté la référence : System.ComponentModel.DataAnnotations.dll

    Code vb.net : 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
     
    Imports System.ComponentModel.DataAnnotations
    Imports AT4.Affaire
     
    <MetadataTypeAttribute(GetType(AffaireMetadata))> _
    Partial Public Class Affaire
        Friend NotInheritable Class AffaireMetadata
     
            'Metadata classes are not meant to be instantiated.
            Private Sub New()
                MyBase.New()
            End Sub
     
            <TableFullOption.TFOAttribute("Key")> Property IdAffaire As Integer
            <TableFullOption.TFOAttribute("FK_Avancement")> Property Avancement As String
            <TableFullOption.TFOAttribute("FK_TypeChantier")> Property TypeChantier As Integer
        End Class
    End Class
     
    Public Class HelperAffaire
        Public Shared Function GetLstAffaires(ByVal LesDatas As AT4Entities) As List(Of Affaire)
            Try
                Return (From a In LesDatas.Affaires Order By a.IdAffaire Descending Select a).ToList
            Catch ex As Exception
                Return New List(Of Affaire)
            End Try
        End Function
    End Class

    Quand je fais un scan des attributs de mes propriétés de Affaire ... je ne retrouve pas mes nouveaux attributs
    Mais si je mets : AffaireMetadata au lieu de Affaire, là je retrouve bien les attributs ajoutés.
    Mais dans ce cas, en fait, ça ne sert à rien. En créant une class à part ça ferai la même chose.

    Il n'y a rien à faire pour ajouter des attributs à une class générée automatiquement par Entity?

  3. #3
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut
    En y réfléchissant ... je préfère passer par une classe simple. Je me contente ensuite dans mon Linq de faire un select new MaclassMeta with{...}

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 21/01/2014, 12h52
  2. Ajouter des méthodes à une classe annotée
    Par ThomasEscolan dans le forum Langage
    Réponses: 2
    Dernier message: 04/09/2012, 18h29
  3. comment ajouter des méthodes à une classe lors Runtime?
    Par revever dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 31/03/2008, 14h53
  4. Réponses: 4
    Dernier message: 28/03/2007, 23h23

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