ObjectContext.Detach(Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オブジェクトをオブジェクト コンテキストから削除します。
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 から削除します。 削除すると、そのオブジェクトの変更の追跡および ID 解決が無効になります。 詳しくは、「オブジェクトのアタッチとデタッチ」をご覧ください。
Detach メソッドが呼び出されると、このオブジェクトを指す参照がシステムで保持されなくなり、ガベージ コレクターでオブジェクトを収集できるようになります。
注意
ガベージ コレクションは、ユーザー コードに、デタッチしたオブジェクトへの参照がない場合にのみ発生します。
オブジェクトをデタッチする際は、次の点に注意してください。
Detach は、メソッドに渡される特定のオブジェクトにのみ影響します。 オブジェクト コンテキスト内で、デタッチされるオブジェクトに関連オブジェクトがある場合、それらの関連オブジェクトはデタッチされません。
オブジェクトのデタッチは、データ ソース内のデータには影響しません。
連鎖削除ディレクティブおよび参照に関する制約は、デタッチ操作中には適用されません。
詳しくは、「オブジェクトのアタッチとデタッチ」をご覧ください。
適用対象
こちらもご覧ください
.NET