J'essaie de trouver un modèle que je peux mettre en œuvre pour permettre rapidement des mises à jour partielles d'entités utilisant Entity Framework. Je peux utiliser Attach quand j'ai l'objet complet, mais si je ne fais qu'une mise à jour partielle, j'aimerais trouver un moyen de le faire de manière répétable sans spécifier les propriétés changées à chaque fois.Modèle de mise à jour d'entités partielles utilisant Entity Framework
J'ai trouvé this idea, et je l'aime vraiment, mais j'ai du mal à faire en sorte que les valeurs "OriginalValues" et "CurrentValues" soient différentes, elles correspondent toujours. Comment devrais-je récupérer des entités pour qu'une méthode de mise à jour comme celle-ci fonctionne?
Je récupère les données et les utilise pour remplir des informations sur une page (mais l'utilisateur peut changer/voir seulement une partie de l'entité), donc je ne récupère que des informations partielles sur l'entité - dois-je récupérer et détacher l'entité avant de mettre à jour comme ça? Je ne peux pas utiliser Try/UpdateModel parce que je ne fais pas ce travail dans un contrôleur. Toute idée ou modèle alternatif serait apprécié.
public virtual void Update(T entity, params Expression<Func<T, object>>[] updatedProperties)
{
//Ensure only modified fields are updated.
var dbEntityEntry = DbContext.Entry(entity);
if (updatedProperties.Any())
{
//update explicitly mentioned properties
foreach (var property in updatedProperties)
{
dbEntityEntry.Property(property).IsModified = true;
}
}
else
{
//no items mentioned, so find out the updated entries
foreach (var property in dbEntityEntry.OriginalValues.PropertyNames)
{
var original = dbEntityEntry.OriginalValues.GetValue<object>(property);
var current = dbEntityEntry.CurrentValues.GetValue<object>(property);
if (original != null && !original.Equals(current))
dbEntityEntry.Property(property).IsModified = true;
}
}
}
Pourquoi ne pas utiliser jquary? – Hadee
Je ne pense pas que jquery résoudra ce que j'essaie d'accomplir. Indépendamment de ce qui vient du navigateur, j'essaye de mettre à jour seulement les propriétés changées une fois que l'objet/objet partiel arrive au serveur. – Josh