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 :

Erreur lors des opérations sur les dates


Sujet :

Entity Framework

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut Erreur lors des opérations sur les dates
    Bonjour à tous,

    J'ai crée une fonction de recherche(tableau) qui à partir d'une jointure, retourne un type anonyme. le tableau contient des données de dates sur lesquelles des opérations peuvent être effectuée. Voici la fonction en question:

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
     
            public static object[] RechercherAgentsAbcence(string aAgentMatricule, string aNomPrenom,string aEquipe,string aIdentifiantAbcence, string aTypeAbcence, DateTime aDebutPeriode, 
                                                           DateTime aFinPeriode)
            {
     
                var q = (from oAgsAbcent in ContexteDAO.ContexteDonnees.AgentsAbscences
                         join oAgent in ContexteDAO.ContexteDonnees.Agents on
                         oAgsAbcent.Agents_Matricule equals oAgent.AgentMatricule
                         join oAbcence in ContexteDAO.ContexteDonnees.Abscences
                         on oAgsAbcent.IdentifiantAbscence equals oAbcence.IdentifiantAbscence
                         select new 
                         {
                             oAgent.AgentMatricule,
                             oAgent.Nom,
                             oAgent.Prenom,
                             oAgent.Photo,
                             oAgent.AgentEquipe,
                             oAbcence.IdentifiantAbscence,
                             oAbcence.TypeAbscence,
                             oAbcence.MotifsAbscence,
                             oAbcence.DebutAbscence,
                             oAbcence.DureeAbscence
                         });
     
     
     
                if (!string.IsNullOrEmpty(aAgentMatricule))
                {
                    q = q.Where(a => a.AgentMatricule.Contains(aAgentMatricule));
                }
     
                if (!string.IsNullOrEmpty(aNomPrenom))
                {
                    q = q.Where(a => a.Nom.Contains(aNomPrenom));
                }
     
                if (string.IsNullOrWhiteSpace(aEquipe))
                {
                    q = q.Where(a => a.AgentEquipe.Contains(aEquipe));
                }
     
                if (!string.IsNullOrEmpty(aEquipe))
                {
                    q = q.Where(a => a.AgentEquipe.Contains(aEquipe));
                }
     
     
     
                if (!string.IsNullOrEmpty(aIdentifiantAbcence))
                {
                    q = q.Where(a => a.IdentifiantAbscence.Contains(aIdentifiantAbcence));
                }
     
                if (!string.IsNullOrEmpty(aTypeAbcence))
                {
                    q = q.Where(a => a.TypeAbscence.Contains(aTypeAbcence));
                }
     
                if (aDebutPeriode < DateTime.MaxValue)
                {
                    q = q.Where(a => a.DebutAbscence <= aDebutPeriode);
     
                }
     
                if (DateTime.MaxValue > aFinPeriode)
                {
                    if (aTypeAbcence == "AHI")
                    {
                        q = q.Where(a => (a.DebutAbscence.AddHours(Convert.ToDouble(a.DureeAbscence))) <= aFinPeriode);
                    }
                    else if (aTypeAbcence == "")
                    {
                        //nothing to do
                    }
                    else
                    {
                        q = q.Where(a => (a.DebutAbscence.AddDays(Convert.ToDouble(a.DureeAbscence))) <= aFinPeriode);
                    }
                }
     
     
     
                return  q.ToArray();
     
     
     
            }
    Le problème est que lors des opérations sur les dates qui se soldent par un échec, j'ai ce message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LINQ to Entities ne reconnaît pas la méthode « System.DateTime AddDays(Double) », et cette dernière ne peut pas être traduite en expression de magasin.
    Je ne sais comment m'y prendre. Merci de m'aider à le résoudre.

    Cordialement.

  2. #2
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 119
    Points : 202
    Points
    202
    Par défaut
    Bonjour,

    Linq traduit les requêtes en SQL et il ne comprend pas la fonction "AddDays(Double)" de DateTime lors de la traduction. Tu peux essayer de sortir l'opération de ta requête linq.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DateTime newDate = a.DebutAbscence.AddDays(Convert.ToDouble(a.DureeAbscence));
    q = q.Where(a => (newDate) <= aFinPeriode);
    PS: tu doit avoir le même problème avec le if du dessus.

    En espérant aider.

    Darkcrift

  3. #3
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Le souci c'est que ça risque de rapatrier beaucoup de données de la base.

    Tu dois pouvoir utiliser DbFunctions.AddDays, ça donnerait quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    q = q.Where(a => DbFunctions.AddDays(a.DebutAbscence, Convert.ToDouble(a.DureeAbscence)) <= aFinPeriode);

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    @darkcrift, la requête génère des erreurs (voir image jointes);

    @Pragmateek, j'utilise framework 4, alors que DbFunctions ne marche qu'avec le 6. N'y aurait-il pas une autre alternative.

    Cordialement.

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 119
    Points : 202
    Points
    202
    Par défaut
    Je l'ai peut être loupé mais je ne voix pas d'image jointe dans ton poste...

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Pardon le voici.
    Images attachées Images attachées  

  7. #7
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Dans ce cas avec EF 4 tu devrais avoir EntityFunctions.

  8. #8
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 119
    Points : 202
    Points
    202
    Par défaut
    Je te disais d’essayer de sortir l’opération sur la date de la requête linq en créant une variable puis en utilisant cette variable dans ta requête linq.

    Tu créé ta variable "newDate" qui permet d'ajouter les jours d’absences à la date du jour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateTime newDate = a.DebutAbscence.AddDays(Convert.ToDouble(a.DureeAbscence));
    Ensuite tu utilise ta variable "newdate" dans ta requête linq.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    q = q.Where(a => (newDate) <= aFinPeriode);
    Ça ne correspond pas au code que tu as mis en image jointe. Il est normal que ton code génère des erreurs.

  9. #9
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    a est une variable locale à la lambda, tu ne peux pas la sortir comme ça.

    Ce dont tu parles n'est bon que si l'expression ne dépend pas de l'entité courante.

  10. #10
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 119
    Points : 202
    Points
    202
    Par défaut
    Effectivement je suis allé un peu vite en besogne et j'ai dit une connerie. Je m'en excuse.

    Du coup je pense effectivement qu'il faut utiliser EntityFonctions.

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Bonjour,

    Merci les gars. Vous êtes sympa. EntityFunctions ne génère pas d'erreurs et semble bien fonctionner. Mais cependant, j'ai une inquiétude. A savoir, en dépit des critères positifs, la recherche ne sélectionne aucune donnée. il se peut que j'ai fais une erreur de l'initialisation de la recherche. Je vous demanderais donc de m'aider trouver l'erreur dans mon ci dessous (evenement boutonClick):

    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
     
     gdvAbscencesAttribuees.DataSourceID = "";
     
                gdvAgents.DataSourceID = "";
     
                BindingSource SourceDonnées = new BindingSource();
     
                foreach (var MyAbcence  in AgentsAbscenceBLL.RechercherAgentsAbcence(txtRechercheMatricule.Text.Trim(),txtNomPrenomRecherche.Text.Trim(),ddl_EquipeAgent.SelectedValue.Trim(),txtIdAbcenceRecherche.Text.Trim(), ddlTypeAbcenceRecherche.SelectedValue.Trim(),Convert.ToDateTime(ddlJourAbscenceDebutPeriode.SelectedValue.Trim() + "/" + ddlMoisAbscenceDebutPeriode.SelectedValue.Trim()+"/" +ddlAnneeAbscenceDebutPeriode.SelectedValue.Trim()),Convert.ToDateTime(ddlJourAbscenceFinPeriode.SelectedValue.Trim() +"/" + ddlMoisAbscenceFinPeriode.SelectedValue.Trim() + "/" + ddlAnneeAbscenceFinPeriode.SelectedValue.Trim())))
                {
                    SourceDonnées.Add(MyAbcence);
                }
     
     
     
                gdvAbscencesAttribuees.Dispose();
                gdvAbscencesAttribuees.DataSource = SourceDonnées;
                gdvAbscencesAttribuees.DataBind();
    Après la recherche l'objet de recherche (positif) n'est pas ajouté à la BindingSource.


    Cordialement.

  12. #12
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Ceci me semble on ne peut plus suspect :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gdvAbscencesAttribuees.Dispose();
    On n'est pas censé se resservir d'un objet disposé...

    Sinon SourceDonnées contient bien les données que tu veux ?

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    J'ai pu localiser l'erreur. C'était :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     if (aDebutPeriode < DateTime.MaxValue)
                {
                    q = q.Where(a => a.DebutAbscence <= aDebutPeriode);
     
                }
    au lieu d'être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     if (aDebutPeriode < DateTime.MaxValue)
                {
                    q = q.Where(a => a.DebutAbscence => aDebutPeriode);
     
                }
    Quant à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    gdvAbscencesAttribuees.Dispose();
    gdvAbscencesAttribuees.DataBind();
    Ce n'était que pour libérer et recharger la grille.

    Maintient ma source de données contient les données sélectionnées. Mais à l'affichage du résultat j'ai cette erreur
    :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    Erreur du serveur dans l'application '/'.
    DataBinding : '<>f__AnonymousTypec`10[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' ne comporte pas de propriété appelée 'AbscenceJustifiee'.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la requête Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
     
    Détails de l'exception: System.Web.HttpException: DataBinding : '<>f__AnonymousTypec`10[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' ne comporte pas de propriété appelée 'AbscenceJustifiee'.
     
    Erreur source:
     
     
    Ligne 558 :            //gdvAbscencesAttribuees.Dispose();
    Ligne 559 :            gdvAbscencesAttribuees.DataSource = SourceDonnées;
    Ligne 560 :            gdvAbscencesAttribuees.DataBind();
    Ligne 561 :        }
    Ligne 562 :
     
     
    Fichier source : D:\WebSites\~\AttributionAbscences.aspx.cs    Ligne : 560
     
    Trace de la pile:
     
     
    [HttpException (0x80004005): DataBinding : '<>f__AnonymousTypec`10[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' ne comporte pas de propriété appelée 'AbscenceJustifiee'.]
       System.Web.UI.DataBinder.GetPropertyValue(Object container, String propName) +9502745
       System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +3140
       System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +67
       System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data) +14
       System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +123
       System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +33
       System.Web.UI.WebControls.DataBoundControl.PerformSelect() +138
       System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +30
       System.Web.UI.WebControls.GridView.DataBind() +4
       EnrePax.Content.Abscences.AttributionAbscences.BtRechercherAbcence_Click(Object sender, EventArgs e) in D:\WebSites\~\AttributionAbscences.aspx.cs:560
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9554250
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724
     
     
    Informations sur la version : Version Microsoft .NET Framework :4.0.30319; Version ASP.NET :4.0.30319.17929
    Cordialement.

  14. #14
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Tu as dû oublier de mapper la propriété AbscenceJustifiee :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    select new 
    {
        oAgent.AgentMatricule,
        oAgent.Nom,
        oAgent.Prenom,
        oAgent.Photo,
        oAgent.AgentEquipe,
        oAbcence.IdentifiantAbscence,
        oAbcence.TypeAbscence,
        oAbcence.MotifsAbscence,
        oAbcence.DebutAbscence,
        oAbcence.DureeAbscence,
        oAbcence.AbscenceJustifiee
    }
    Accessoirement on écrit "absence" pas "abscence".

  15. #15
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Effectivement cette cette propriété qui est présente dans l'entité de liaison n'était pas sélectionnée. Donc ma requête de type anonyme devient:

    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
     
    var q = (from oAgsAbcent in ContexteDAO.ContexteDonnees.AgentsAbscences
                         join oAgent in ContexteDAO.ContexteDonnees.Agents on
                         oAgsAbcent.Agents_Matricule equals oAgent.AgentMatricule
                         join oAbcence in ContexteDAO.ContexteDonnees.Abscences
                         on oAgsAbcent.IdentifiantAbscence equals oAbcence.IdentifiantAbscence
                         select new 
                         {
                             oAgent.AgentMatricule,
                             oAgent.Nom,
                             oAgent.Prenom,
                             oAgent.Photo,
                             oAgent.AgentEquipe,
                             oAbcence.IdentifiantAbscence,
                             oAbcence.TypeAbscence,
                             oAbcence.MotifsAbscence,
                             oAbcence.DebutAbscence,
                             oAbcence.DureeAbscence,
                             oAgsAbcent.AbscenceJustifiee
                         });
    Et mon code fonctionne à merveille.
    Quant au mappage de la propriété elle était déjà faite. Voir image ci dessous.

    Grand merci pour le coup de main.

    Cordialement.
    Images attachées Images attachées  

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

Discussions similaires

  1. Opération sur les dates
    Par obily dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 19/01/2007, 14h30
  2. [2.0] Comment réaliser des opérations sur les ensembles ?
    Par Cereal123 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 23/10/2006, 13h01
  3. opération sur les dates
    Par AMARI_SALIM dans le forum Langage
    Réponses: 14
    Dernier message: 19/07/2006, 18h05
  4. faire des opérations sur la date courante
    Par transistor49 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 18/04/2006, 17h39
  5. opérations sur les dates
    Par coucoucmoi dans le forum Débuter
    Réponses: 2
    Dernier message: 12/08/2003, 11h45

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