ObjectContext.Detach(Object) Methode

Definitie

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.

Van toepassing op

Zie ook