2009-07-23 5 views
2

J'ai un peu de mal à comprendre quand des entités sont attachées et modifiées et qu'elles ne le sont pas. Désolé si cela a déjà été demandé. Dire que j'ai un code comme ceci:Utilisation des entités de structure et Entity Framework

public MyEntity GetEntity() 
{ 
    using (var ctx = new MyObjectContext) 
    { 
     return ctx.MyEntitySet.First(); 
    } 
} 

Alors je l'appelle

var result = GetEntity(); 

En cas de résultat attelées ou dételées du contexte?

J'avais l'impression que lorsque ObjectContext était éliminé, l'entité perdait son suivi des modifications. Ou est le contexte ne jamais être disposé.

Répondre

0

L'attachement de l'objet n'est pas directement lié au contexte dans ma compréhension. Je crois que si les clés d'entité sont définies, elles sont toujours attachées. Vous pouvez détacher l'objet, mais vous devez le faire manuellement en utilisant la méthode Detach.

Si vous recherchez un objet détaché, essayez de le détacher manuellement. Sinon, ce que vous avez fait devrait vous permettre de mettre à jour l'objet et d'enregistrer les modifications sans réattacher l'objet.

Vive

1

Si vous écrivez ce code alors que le ctx a été disposé, parce que vous ne détachez pas l'entité du ctx vous ne pouvez pas l'attacher à un autre contexte. Essentiellement, il reste un backpointer de l'entité au ctx, qui empêche cela de se produire. Je suppose que vous pourriez dire qu'il est «attaché par pseudo».

Hope this helps

Alex James

gestionnaire de programme Entity Framework équipe

Questions connexes