ale*_*dru 17 c# linq entity-framework
我试图使用Entity Framework删除一个对象,并在互联网上的所有教程中发现,为了做到这一点,你必须DeleteObject
在上下文中调用该方法.我试过这样做,但似乎我没有DeleteObject
方法.
这是我的代码:
public void DeleteBook(int bookId)
{
Book book = (Book)bookContext.Books.Where(b => b.Id == bookId).First();
bookContext.DeleteObject(book);
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
'DataAccess.Models.BooksEntities'不包含'DeleteObject'的定义,也没有扩展方法'DeleteObject'接受类型'DataAccess.Models.BooksEntities'的第一个参数(你是否缺少using指令或程序集引用) ?)
我究竟做错了什么?
Mar*_*eta 29
您使用的是DbContext还是ObjectContext?如果您有DbContext,则需要使用Remove函数:
public void DeleteBook(int bookId)
{
Book book = (Book)bookContext.Books.Where(b => b.Id == bookId).First();
bookContext.Books.Remove(book);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
删除实体而不通过更改状态检索实体的可能解决方案
DbContext具有名为Entry和Entry的方法,这些方法为给定实体获取DbEntityEntry,并提供对实体信息的访问,并返回能够对实体执行操作的DbEntityEntry对象.现在我们可以通过将实体状态更改为EntityState.Deleted来对上下文执行删除操作.
using (Entities Context = new Entities())
{
Book deptBook = new Book { Id = bookId };
Context.Entry(deptBook).State = EntityState.Deleted;
Context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
34711 次 |
最近记录: |