web-dev-qa-db-fra.com

Comment détacher des objets dans Entity Framework Code First?

Il n'y a pas de Detach(object entity) sur le DbContext.

Est-ce que je peux d'abord détacher des objets sur le code EF?

129
Shawn Mclean

Si vous souhaitez détacher un objet existant, suivez les conseils de @ Slauma. Si vous souhaitez charger des objets sans suivre les modifications, utilisez:

var data = context.MyEntities.AsNoTracking().Where(...).ToList();

Comme mentionné dans le commentaire, cela ne détachera pas complètement les entités. Ils sont toujours attachés et le chargement paresseux fonctionne, mais les entités ne sont pas suivies. Cela devrait être utilisé par exemple si vous voulez charger une entité uniquement pour lire des données et que vous ne prévoyez pas de les modifier.

138
Ladislav Mrnka

Ceci est une option:

dbContext.Entry(entity).State = EntityState.Detached;
215
Slauma