我使用这样的代码(在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的对象已经通过某些先前的操作加载到上下文中时,这会失败。有没有办法检查并仅在上下文中没有这样的对象时进行附加?
答案 0 :(得分:2)
尝试使用ObjectStateManager.TryGetObjectStateEntry方法,如果对象没有状态条目,则返回false
。
您可以从ObjectStateManager
媒体资源获取ObjectContext.ObjectStateManager
。