实体框架删除记录

Tox*_*xic 5 linq asp.net-mvc entity-framework

我试图从表中删除记录,store但我DeleteObject在我的代码中有识别问题.我有参考

using System.Linq;
using System.Data.Entity;
using System.Data.Objects;
Run Code Online (Sandbox Code Playgroud)

但它仍然无法正常工作.我正在MVC 4使用Visual Studio 2012.

public void Delete()
{
    using (var db = new AppContext())
    {
        var query_D = (from b in db.Stores
                   where b.storeID == 1
                   select b).First();

        db.DeleteObject(query_D);
        db.SaveChanges();
    } 
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

spa*_*jce 9

我意识到你在VS2012中使用MVC 4,默认情况下Entity Framework版本是5.

现在,你的方式delete是从EF4.

下面就以正确的方式delete使用EF5

using (var db= new AppContext(ConnectionStr))
{
    try
    {
        con.Configuration.AutoDetectChangesEnabled = false;
        var o = new Store { Id = 1 };
        db.Stores.Attach(o);
        db.Stores.Remove(o);
        db.SaveChanges();
    }
    catch (Exception ex)
    {
        throw new Exception(ex.InnerException.Message);
    }
    finally
    {
        con.Configuration.AutoDetectChangesEnabled = true;
    }
}
Run Code Online (Sandbox Code Playgroud)


Jan*_* P. 8

只是用

db.Entry(query_D).State = System.Data.EntityState.Deleted;
Run Code Online (Sandbox Code Playgroud)