ObjectContext.Detach(Object) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee verwijdert u het object uit de objectcontext.
public:
void Detach(System::Object ^ entity);
public void Detach(object entity);
member this.Detach : obj -> unit
Public Sub Detach (entity As Object)
Parameters
- entity
- Object
Object dat moet worden losgekoppeld. Alleen de entity wordt verwijderd. Als er gerelateerde objecten zijn die door hetzelfde ObjectStateManagerworden bijgehouden, worden deze niet automatisch losgekoppeld.
Uitzonderingen
De entity is null.
Deze entity is niet gekoppeld ObjectContext (bijvoorbeeld is nieuw gemaakt en nog niet gekoppeld aan een context, of is verkregen via een andere context of is al losgekoppeld).
Voorbeelden
// This method is called to detach SalesOrderHeader objects and
// related SalesOrderDetail objects from the supplied object
// context when no longer needed by the application.
// Once detached, the resources can be garbage collected.
private static void DetachOrders(ObjectContext context,
SalesOrderHeader order)
{
try
{
// Detach each item from the collection.
while (order.SalesOrderDetails.Count > 0)
{
// Detach the first SalesOrderDetail in the collection.
context.Detach(order.SalesOrderDetails.First());
}
// Detach the order.
context.Detach(order);
}
catch (InvalidOperationException ex)
{
Console.WriteLine(ex.ToString());
}
}
Opmerkingen
Hiermee verwijdert u het object uit de ObjectStateManager. Hierdoor worden wijzigingen bijhouden en identiteitsomzetting voor dat object uitgeschakeld. Zie Objecten koppelen en loskoppelen voor meer informatie.
Nadat de Detach methode is aangeroepen, blijven verwijzingen die verwijzen naar dit object niet meer bewaard en kan het worden verzameld door de garbagecollection.
Note
Garbagecollection kan alleen optreden als de gebruikerscode geen verwijzingen naar het losgekoppelde object heeft.
De volgende overwegingen zijn van toepassing bij het loskoppelen van objecten:
Detach is alleen van invloed op het specifieke object dat wordt doorgegeven aan de methode. Als het object dat wordt losgekoppeld gerelateerde objecten in de objectcontext heeft, worden deze objecten niet losgekoppeld.
Het loskoppelen van objecten heeft geen invloed op gegevens in de gegevensbron.
Trapsgewijs verwijderen van instructies en referentiƫle beperkingen worden niet afgedwongen tijdens een loskoppelbewerking.
Zie Objecten koppelen en loskoppelen voor meer informatie.