Estoy tratando de recibir una entidad y luego actualizarla, pero quiero obtenerla sin seguimiento, así que puedo adjuntarla de nuevo al contexto.Desactivar el seguimiento en el modelo de estructura de entidad primero
Tengo el EntityFramework.dll
al que se hace referencia (4.1). Genere la base de datos del modelo. (no código primero).
Get usuario:
db.Users.MergeOption = MergeOption.NoTracking;
IQueryable<User> query = db.Users;//.AsNoTracking(); //<-- apparently, this is code-first only.
return query;
actualización Valoración:
db.Users.Attach(user); //error here.
ObjectStateEntry entry = db.ObjectStateManager.GetObjectStateEntry(user);
entry.SetModifiedProperty(propertyName);
db.SaveChanges();
return user;
error:
An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key.
que llamo el método como este:
var user = userRepository.GetUsers().FirstOrDefault(u => u.UserId == userId);
user.Identifiers.Add(someIdent);
userRepository.UpdateUser(user);
Debería funcionar. ¿Estás seguro de que no estás recibiendo usuario con otra consulta? –
@Ladislav misma consulta. Solo tengo 1 método de lectura/obtención en el repositorio, que usa ese código –
Acabo de probar un código similar sin toda la carga del repositorio y funciona para mí. –