2010-11-23 77 views
2

我使用这样的代码(在http://blogs.msdn.com/b/alexj/archive/2009/03/27/tip-9-deleting-an-object-without-retrieving-it.aspx描述)以删除实体:删除的实体而无需首先取回(实体框架4)

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

然而,当与ID的对象= 4是已经失败通过以前的操作加载到上下文中。只有在上下文中没有这样的对象的情况下,是否有任何方法来检查和附加连接?

回答

2

尝试使用ObjectStateManager.TryGetObjectStateEntry方法,如果没有对象的状态条目,则返回false

您可以从ObjectContext.ObjectStateManager属性中获得ObjectStateManager

+0

正确。 +1。虽然这不适合我,因为(我相信)即时通讯使用POCO的。在我的情况下,我不得不使用构造一个`EntityKey`的特殊重载。 – RPM1984 2010-11-24 10:59:10