删除实体而不先检索它(实体框架4)

时间:2010-11-23 17:58:26

标签: entity-framework-4

我使用这样的代码(在http://blogs.msdn.com/b/alexj/archive/2009/03/27/tip-9-deleting-an-object-without-retrieving-it.aspx中描述)来删除实体:

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

但是,当ID = 4的对象已经通过某些先前的操作加载到上下文中时,这会失败。有没有办法检查并仅在上下文中没有这样的对象时进行附加?

1 个答案:

答案 0 :(得分:2)

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

您可以从ObjectStateManager媒体资源获取ObjectContext.ObjectStateManager