This documentation is archived and is not being maintained.

How to: Detach Objects from an Object Context

You can detach objects from an object context when they are no longer required. To do this, call the Detach method. This reduces the amount of memory used.

The benefits of detaching objects should be considered against the additional processing required to perform the operation. For more information, see Attaching and Detaching Objects.

The example in this topic is based on the Adventure Works Sales Model. To run the code in this example, you must have already added the AdventureWorks Sales Model to your project and configured your project to use the Entity Framework. To do this, complete the procedures in How to: Manually Configure an Entity Framework Project and How to: Manually Define the Model and Mapping Files.


This example shows how to detach SalesOrderDetail and SalesOrderHeader objects from an ObjectContext when they are no longer required by the application.

// 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)
        // Detach each item from the collection.
        while (order.SalesOrderDetails.Count > 0)
            // Detach the first SalesOrderDetail in the collection.

        // Detach the order.
    catch (InvalidOperationException ex)

See Also