Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur Nullable object must have a value

Alerte erreur qui donne autant d'urticaire

    29 janvier 2021 à 23:27:24

    Bonjour 

    Comme le titre l'indique j'ai une erreur dont je ne comprends pas l'origine lorsque j'ajoute un personnel ,malgré maintes vérifications je n'arrive pas à comprendre où se situe l'erreur.

    Nullable object must have a value. System.InvalidOperationException at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) at System.Nullable1.get_Value() at Fred.Business.Personnel.PersonnelManager.Add(PersonnelEnt personnel, Nullable1 userId) at Fred.Web.API.PersonnelController.<>c__DisplayClass28_0.b__0() in C:\HAMZA.Web\HAMZAWeb\API\PersonnelController.cs:line 304 at Fred.Web.API.ApiControllerBase.Post[T](Func`1 action) in C:\Hamza.Web\HamzaWEB\API\ApiControllerBase.cs:line 89


    Voici la fonction de l'ajout 

    public PersonnelEnt Add(PersonnelEnt personnel, int? userId = null )
        {
            if (personnel.IsInterimaire)
            {
                personnel.Matricule = GetNextMatriculeInterimaire();
            }
    
            if (userId.HasValue )
            {
                personnel.UtilisateurIdCreation = userId;
            }
            else
            {
                personnel.UtilisateurIdCreation = this.CurrentUser.UtilisateurId;
            }
    
            personnel.Utilisateur = null;
            personnel.DateCreation = DateTime.UtcNow;
            BusinessValidation(personnel);
            UpdatePersonnelCategorie(personnel);
            MatriculeExterneEnt matriculeToAdd = null;
            if (personnel.MatriculeExterne != null && personnel.MatriculeExterne.Any())
            {
                matriculeToAdd = personnel.MatriculeExterne.FirstOrDefault();
                personnel.MatriculeExterne = null;
            }
    
    
            personnel.Materiel = null;
            var personnelEntCreated = this.Repository.AddPersonnel(personnel);
            Save();
    
            var personnelEnt = personnel;
    
            if (matriculeToAdd != null )
            {
                matriculeToAdd.PersonnelId = personnelEnt.PersonnelId;
                this.matriculeExterneManager.AddMatriculeExterne(matriculeToAdd);
                
            }
    
       return personnelEnt;

    Ici l'Api PersonnelController.cs

    [HttpPost]
        [Route("api/Personnel")]
        public HttpResponseMessage AddPersonnel(PersonnelModel model)
        {
            return Post(() => mapper.Map<PersonnelModel>(personnelManager.Add(mapper.Map<PersonnelEnt>(model)))); //Line304
        }

    Et là la ligne 89 du ApiControllerBase.cs


    protected HttpResponseMessage Post<T>(Func<T> action)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var value = action(); //line 89
                    var response = Request.CreateResponse(HttpStatusCode.Created, value);
                    return response;
                }
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState);
            }
            catch (ValidationException ex)
            {
                return this.GetValidationErrorResponse(ex);
            }
            catch (FredBusinessConflictException ex)
            {
                return GetErrorResponse(HttpStatusCode.Conflict, ex);
            }
            catch (FredBusinessException ex)
            {
                return GetErrorResponse(HttpStatusCode.BadRequest, ex);
            }
            catch (UnauthorizedAccessException ex)
            {
                return GetErrorResponse(HttpStatusCode.Forbidden, ex);
            }
            catch (Exception ex)
            {
                return GetErrorResponse(HttpStatusCode.InternalServerError, ex);
            }
        }

    Du coup personne n'a une idée d'où provient l'erreur?



    • Partager sur Facebook
    • Partager sur Twitter
      29 janvier 2021 à 23:53:44

      En ligne 304 de PersonnelController.cs, quand ça plante, que vaut "model", que vaut "mapper.Map<PersonnelEnt>(model)" ? etc..
      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        30 janvier 2021 à 12:08:11

        bacelar a écrit:

        En ligne 304 de PersonnelController.cs, quand ça plante, que vaut "model", que vaut "mapper.Map<PersonnelEnt>(model)" ? etc..


        Comment ça "que vaut" ? Je dois un breakpoint faire sur la ligne 304 , c'est ça ?

        -
        Edité par HamzaGharib1 31 janvier 2021 à 12:00:01

        • Partager sur Facebook
        • Partager sur Twitter
          1 février 2021 à 11:04:03

          >Comment ça "que vaut" ? Je dois un breakpoint faire sur la ligne 304 , c'est ça ?

          Oui

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            1 février 2021 à 15:34:17

            le model n'est pas null et il s'ajoute bien.

            Mais cet erreur qui m'apparait dont je ne comprends pas la source

            • Partager sur Facebook
            • Partager sur Twitter
              2 février 2021 à 16:33:19

              Profitez du point d'arrêt pour vérifier toutes les variables utilisées.
              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

              Erreur Nullable object must have a value

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown