使用 EF Code First 从数据库中删除行
我尝试使用以下函数来删除项目:
internal static bool Remove(T record)
{
int result = 0;
// get db set
DatabaseDbContext context = new DatabaseDbContext();
DbSet<T> set = context.Set<T>();
// remove item
set.Remove(record);
// clean up
context.Dispose();
record.Dispose();
// return result
return result > 0;
}
我收到错误:“无法删除该对象,因为在 ObjectStateManager 中找不到该对象。”
我该如何修改它才能像我想要的那样工作?
I try to use the following function to remove a item:
internal static bool Remove(T record)
{
int result = 0;
// get db set
DatabaseDbContext context = new DatabaseDbContext();
DbSet<T> set = context.Set<T>();
// remove item
set.Remove(record);
// clean up
context.Dispose();
record.Dispose();
// return result
return result > 0;
}
I get the error: "The object cannot be deleted because it was not found in the ObjectStateManager."
How can I modify this to work like I want?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用 Attach 将现有记录附加到当前上下文。这可以让您避免从数据库中检索记录以将其删除。
You can use Attach to attach an existing record to the current context. This lets you avoid retrieving the record from the database in order to delete it.
您可以使用 ObjectContext.Attach 方法 。
You could use ObjectContext.Attach Method.
解决了,但是还有更好的办法吗?
Solved it, but there has to be a better way?
试试这个
Try this
使用 InsertedDate 删除实体范围的另一种方法
Another way to delete Range of entities using InsertedDate