我正在尝试删除表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();
}
}
提前致谢
答案 0 :(得分: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;
}
}
答案 1 :(得分:8)
只需使用
db.Entry(query_D).State = System.Data.EntityState.Deleted;
答案 2 :(得分:0)
你应该尝试:
{{1}}