none
Entity framework entity en état modifié (et fait un update) bien qu'on affecte une valeur identique ? RRS feed

  • Question

  • Bonjour,


    J'explique avec un exemple:

    /
    

    // on recupere une entité
    var myEntity context.GetClient(543622);
    
    // en base cette entité avait déja une valeur myValue=10
    //l'entité se retrouve donc aussi avec cette valeur
    //on modifie l'entité avec la meme valeur
    myEntity.myValue = 10;
    
    // ensuite on va recuprer les chnageemnt de cette entité
    ObjectStateEntry ose = null;
    
    _context.ObjectStateManager.TryGetObjectStateEntry(myEntity.EntityKey, out ose);
    
    // ose.State indique un état modifé
    // et ci dessous count = 1 ??!!... 
    var count = ose.GetModifiedProperties().Count();
    
    // enfin un SaveChanges engendre un update... (tracké avec SQL Server Profiler).
    
    _context.SaveChanges(); 

    Il semble que si on affecte la meme valeur a une propriete d'une entité, l'entité est en etat modifé et genere un update .

    Je suis surpris par ce comportement, je m'attendais a mise a jour si les valeurs avaient changées...



    Sinn'
    jeudi 23 décembre 2010 14:15

Réponses

Toutes les réponses