5

我正在尝试从表中删除记录,但我在代码中store遇到了识别问题。DeleteObject我有参考

using System.Linq;
using System.Data.Entity;
using System.Data.Objects;

但它仍然无法正常工作。我正在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();
    } 
}

提前致谢

4

3 回答 3

10

我意识到您正在使用带有 VS2012 的 MVC 4,并且默认情况下实体框架版本是 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;
    }
}
于 2013-01-29T13:55:54.063 回答
8

只需使用

db.Entry(query_D).State = System.Data.EntityState.Deleted;
于 2013-01-29T13:55:11.520 回答
0

你应该试试 :

db.Stores.Remove(query_D);
db.SaveChanges();
于 2015-06-26T12:20:55.050 回答