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

Silverlight Discussion :

Entity framework ajouter la somme des details de vente


Sujet :

Silverlight

  1. #1
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut Entity framework ajouter la somme des details de vente
    bonjour

    j'ai un projet silverlight/riaservices

    pour simplifier j'ai deux classes entity framework qui correspondent a deux table ventes et ventes_details (un classique)

    est t'il possible d'inclure dans la classe ventes un champs qui calcule la somme des ventes_details automatiquement pour pouvoir afficher le tout dans une datagrid

    supposons que j'ai une datagrid avec la liste de toutes les ventes ,
    je voudrais ajouter une colonne SOMME qui correspond a ce nouveau champs


    Merci et bonne journée

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    La classe ventes est partielle donc tu peux l'enrichir avec des propriétés calculées

  3. #3
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    tu peux donner un exemple stp ?

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Ben tu crées un nouveau fichier cs.

    Tu mets le même namespace que où ta classe Ventes est définie et ensuite un truc du genre

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public partial class Ventes
    {
       public int SommeVentes
       {
          get
          {
             if(ventes_details == null) return 0;
             else return ventes_details.Sum(d => d.Price); 
          } 
       }
    }

    Avec Price le nom de la propriété qui contient le prix de la vente.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  5. #5
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    je m'y perds, je m'y perds

    voila ce que j'a rajouté dans ma classe ventes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     [DataMember()]
                public double Total_Vente
                {
                    get
                    {
                        if (VENTES_DETAILS == null) return 0;
                        else return (double)(VENTES_DETAILS.Sum(d => (double)d.VD_PRIX * (double)d.VD_QTE ));
                    }
                }
    mais quand je compile j'ai ce message d'erreur

    The associated metadata type for type 'Gestion_Commerciale.Web.VENTE' contains the following unknown properties or fields: Total_Vente.

    Please make sure that the names of these members match the names of the properties on the main type. Gestion_Commerciale

  6. #6
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Tu as l'air d'y avoir mis dans la classe de metadata. J'ai dit de créer un nouveau fichier avec le même namespace...
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  7. #7
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    eh bien j'ai fais ça aussi

    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
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    /* Même namespace que mes classes metadata et autre */
    namespace Gestion_Commerciale.Web 
    {
        public partial class VENTES
        {
            public decimal SommeVentes
            {
                get
                {
                    if (VENTES_DETAILS == null) return 0;
                    else return VENTES_DETAILS.Sum(d => d.PRIX * d.Qte);
                }
            }
        }
    }
    j'ai eu plein d'erreurs par exemple :
    Error 14 'Gestion_Commerciale.Web.VENTES_DETAILS' is a 'type' but is used like a 'variable' C:\web\Silverlight\Projects\Gestion_Commerciale\Gestion_Commerciale.Web\TotauxClass.cs 16 21 Gestion_Commerciale.Web

  8. #8
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Ben tu es sur que tu as une propriété qui s'appelle VENTES_DETAILS dans ta classe ?

    Par ailleurs il n'est pas utile de rajouter un DataMember sur ta classe vu que y'a pas de set dessus.

    Tu utilises quelle technologie ? RIA Services ou un simple WCF ?
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  9. #9
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    - ventes_details existe bien puisque l'intellisense me l'a propropose

    - et j'utilise Ria services ado.net + domain service

    - j'ai pas mis de datamember



    ps : peut on utiliser des requettes linq standard avec ado.net dans le domain service ?

  10. #10
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Ouais enfin l'intellisense t'a peut-être proposé la classe et non la propriété.

    Si tu mets this. devant ça donne quoi ?
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  11. #11
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    ben oui c'était la classe !

    on accède comment a la propriété ?

  12. #12
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    C'est quoi le nom de la propriété de ta classe Ventes qui contient les Vente_Details ???
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  13. #13
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    VENTES_DETAILS

  14. #14
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Issam Voir le message
    VENTES_DETAILS
    Bon et si tu fais : this.VENTES_DETAILS c'est bon ?
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  15. #15
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    non c'est pas bon !

  16. #16
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Et bien tu t'es trompé quelque part...

    Normalement si tu tapes "this." l'intellisense est censé te proposer toutes les méthodes de ta classe Vente définies dans l'autre bout de la classe partielle.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  17. #17
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    eh bien j'ai créé un nouveau fichier .cs avec ce 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
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    /* Même namespace que mes classes metadata et autre */
    namespace Gestion_Commerciale.Web 
    {
        public partial class VENTES
        {
            public decimal SommeVentes
            {
                get
                {
                    if (VENTES_DETAILS == null) return 0;
                    else return VENTES_DETAILS.Sum(d => d.PRIX * d.Qte);
                }
            }
        }
    }

  18. #18
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    effectivement
    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
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    /* Même namespace que mes classes metadata et autre */
    namespace Gestion_Commerciale.Web 
    {
        public partial class VENTES
        {
            public decimal SommeVentes
            {
                get
                {
                    if (VENTES_DETAILS == null) return 0;
                    else return VENTES_DETAILS.Sum(d => d.PRIX * d.Qte);
                }
            }
        }
    }
    j'ai changer le nom de la classe de Ventes a Vente

    ça compile par contre j'arrive pas a "binder" cette nouvelle propriété dans une colonne d'un datagrid :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <sdk:DataGrid AutoGenerateColumns="False" Height="255" HorizontalAlignment="Left" ItemsSource="{Binding Data, ElementName=MyDataSource}"  x:Name="VENTEDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Grid.Row="1" IsReadOnly="True" Margin="5">
                                        <sdk:DataGrid.Columns>
                                            <sdk:DataGridTextColumn x:Name="VE_DateColumn" Binding="{Binding VE_DATE, StringFormat=\{0:d\}}" Header="Date" Width="120" />
                                            <sdk:DataGridTextColumn x:Name="VE_CLIENTColumn" Binding="{Binding CLIENT.CL_NOM}" Header="Client" Width="*" />
                                            <sdk:DataGridTextColumn x:Name="MontantColumn" Binding="{Binding SommeVentes, Mode=OneWay}" Header="Montant" Width="120" />
                                             
    
                                        </sdk:DataGrid.Columns>
                                    </sdk:DataGrid>
    les autres colonnes s'affichent normalement sauf pour la somme qui n'affiche rien

    merci de votre aide

Discussions similaires

  1. Ajout Relation Entity Framework
    Par YoNoSe dans le forum ASP.NET
    Réponses: 0
    Dernier message: 13/12/2009, 21h02
  2. Problème Ajout Donnée avec Entity Framework
    Par Invité dans le forum Linq
    Réponses: 4
    Dernier message: 14/10/2009, 14h16
  3. Réponses: 0
    Dernier message: 30/08/2008, 04h18
  4. Réponses: 2
    Dernier message: 13/08/2008, 10h36
  5. [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

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