我正在尝试从表 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();
}
}
提前致谢
我意识到您正在使用带有VS2012的MVC 4,默认情况下实体框架版本为5。
现在你delete
的方式来自EF4
.
以下是使用EF5
delete
的正确方法
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;
}
}
只需使用
db.Entry(query_D).State = System.Data.EntityState.Deleted;
你应该试试:
db.Stores.Remove(query_D);
db.SaveChanges();