ObjectContext.Detach(Object) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Удаляет объект из контекста объекта.
public:
void Detach(System::Object ^ entity);
public void Detach(object entity);
member this.Detach : obj -> unit
Public Sub Detach (entity As Object)
Параметры
- entity
- Object
Объект, отсоединяемый.
entity Удаляется только те же объекты. Если есть связанные объекты, отслеживаемые тем же ObjectStateManagerобразом, они не будут отсоединены автоматически.
Исключения
Значение entity равно null.
Этот entity параметр не связан с этим ObjectContext (например, был создан и не связан с каким-либо контекстом еще или был получен с помощью другого контекста или уже отсоединен).
Примеры
// 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());
}
}
Комментарии
Удаляет объект из ObjectStateManagerобъекта. Это отключает отслеживание изменений и разрешение удостоверений для этого объекта. Дополнительные сведения см. в разделе "Присоединение и отключение объектов".
Detach После вызова метода система больше не будет хранить ссылки, указывающие на этот объект, и она может быть собрана сборщиком мусора.
Note
Сборка мусора может возникать только в том случае, если в пользовательском коде нет ссылок на отсоединяемый объект.
При отключении объектов применяются следующие рекомендации.
Detach влияет только на конкретный объект, передаваемый методу. Если у отсоединяемого объекта есть связанные объекты в контексте объекта, эти объекты не отсоединяются.
Отсоединение объектов не влияет на данные в источнике данных.
Директивы каскадного удаления и ограничения ссылок не применяются во время операции отсоединения.
Дополнительные сведения см. в разделе "Присоединение и отключение объектов".