J'utilise EF 5 (pas 6). J'ai un objet de classe inférieure et il est dans DB utilisant EF.Comment vérifier si la propriété change réellement avant une mise à jour
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public DateTime DOB { get; set;}
}
Plus tard,
Je demande a obtenu de faire une mise à jour même objet/enregistrement.
Mais avant de faire l'appel de mise à jour, je voudrais comparer comparer si la propriété a réellement changé parce que je peux obtenir le même enregistrement pour une mise à jour afin de ne pas faire de mise à jour aveugle.
var student = _context.Students.select(x =>x.Name == "").first();
student.name = "";
student.age = "";
student.DOB = "";
_context.Entry(student).State = EntityState.Modified;
_context.saveChanges();
Est-ce qu'EF me donne un moyen d'y arriver? Ou, j'ai besoin de comparer chaque propriété une par une et de décider? Je peux avoir 20 propriétés ...
Une idée s'il vous plaît?
Que signifie _ "Je peux obtenir le même enregistrement pour une mise à jour" _, exactement? Votre enregistrement n'a pas de clé primaire? – CodeCaster
ayant la clé primaire ferait quelle différence à ma question? Mon enregistrement enregistré a une clé primaire. plus tard, quelqu'un a appelé la même méthode en envoyant simplement les paramètres Name, Age et DOB. Maintenant, j'ai besoin de décider si juste faire appel à la mise à jour aveugle ou au moins comparer les propriétés en premier? à moins que je manque quelque chose imp sur EF – simbada
Si vous supprimez la ligne '_context.Entry (étudiant) .State = EntityState.Modified;', EF fera le contrôle pour vous. –