ObjectContext.Detach(Object) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menghapus objek dari konteks objek.
public:
void Detach(System::Object ^ entity);
public void Detach (object entity);
member this.Detach : obj -> unit
Public Sub Detach (entity As Object)
Parameter
- entity
- Object
Objek yang akan dilepas.
entity
Hanya yang dihapus; jika ada objek terkait yang sedang dilacak oleh yang sama ObjectStateManager, objek tersebut tidak akan dilepas secara otomatis.
Pengecualian
entity
adalah null
.
entity
tidak terkait dengan ini ObjectContext (misalnya, baru dibuat dan belum dikaitkan dengan konteks apa pun, atau diperoleh melalui beberapa konteks lain, atau sudah dilepas).
Contoh
// 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());
}
}
Keterangan
Menghapus objek dari ObjectStateManager. Ini menonaktifkan pelacakan perubahan dan resolusi identitas untuk objek tersebut. Untuk informasi selengkapnya, lihat Melampirkan dan Melepaskan Objek.
Setelah metode dipanggil Detach , sistem tidak akan lagi menyimpan referensi yang menunjuk ke objek ini dan dapat dikumpulkan oleh pengumpul sampah.
Catatan
Pengumpulan sampah hanya dapat terjadi jika kode pengguna tidak memiliki referensi apa pun ke objek yang dilepas.
Pertimbangan berikut berlaku saat melepaskan objek:
Detach hanya mempengaruhi objek tertentu yang diteruskan ke metode . Jika objek yang dicopot memiliki objek terkait dalam konteks objek, objek tersebut tidak dilepaskan.
Mencopot objek tidak memengaruhi data di sumber data.
Arahan penghapusan bertingkat dan batasan referensial tidak diberlakukan selama operasi lepaskan.
Untuk informasi selengkapnya, lihat Melampirkan dan Melepaskan Objek.