我按照以下方式照常调用存储过程
public void runSP(int Id){
using(var context = new Entities())
{
SqlParameter IdParam = new SqlParameter("@id", Id);
var x = context.Database.SqlQuery<entity>("sp_ChosenSP @id", IdParam);
context.SaveChanges();
}
}
存储过程采用Id
并从entity
中删除。现在的事情是,当我在调试视图中并且在Id
处设置断点然后打开x的结果视图(将鼠标悬停在x上,单击向下箭头时),此savechanges
似乎仅被删除打开结果视图)。
所以我的问题是,为什么会发生这种情况,我应该如何调整我的代码呢? 谢谢!
答案 0 :(得分:2)
Database.SqlQuery应该用于检索行,而不是删除它们。
使用ExecuteSqlCommand调用更新或删除过程。
答案 1 :(得分:1)
试试这个:
public void runSP(int Id){
using(var context = new Entities())
{
SqlParameter idParam = new SqlParameter("@id", Id);
var x = context.Database.SqlQuery<entity>("exec sp_ChosenSP @id", idParam ).ToList<entity>();
context.SaveChanges();
}
}