2010-11-23 21 views
2
私はエンティティを削除する( http://blogs.msdn.com/b/alexj/archive/2009/03/27/tip-9-deleting-an-object-without-retrieving-it.aspxに記載されている)、このようなコードを使用して最初に取得せずに、エンティティを

削除:ID = 4を持つオブジェクトが既にある場合は(Entity Frameworkの4)

Category stub = new Category { ID = 4 }; 
ctx.AttachTo("Categories", stub); 
ctx.DeleteObject(stub); 
ctx.SaveChanges(); 

しかし、これは失敗しました以前の操作によってコンテキストにロードされます。コンテキスト内にそのようなオブジェクトがない場合にのみ、添付をチェックして実行する方法はありますか?

答えて

2

ObjectStateManager.TryGetObjectStateEntryメソッドを使用してください。オブジェクトの状態エントリがない場合はfalseを返します。

は、ObjectContext.ObjectStateManagerプロパティから取得できます。

+0

正しいです。 +1。これは私のために働いていなかったが、(私は信じる)私はPOCOを使用しているので。私の場合、私は 'EntityKey'を構築する特別なオーバーロードを使用しなければなりませんでした。 – RPM1984

関連する問題