SP已成功执行但数据未更新

时间:2014-06-19 10:00:08

标签: c# sql-server asp.net-mvc-5 telerik-mvc telerik-open-access

我正在使用 Telerik Open Access MSSQL SERVER 2012 进行互动。

我制作了一个存储过程,将IsActive表的Role列设置为0(false)并返回Role的所有数据IsActive= 1(True)< / p>

我的Role表格有列:

RoleId(int)RoleName(varchar(50))AliasName(varchar(50))IsActive(bit)

我的存储过程:

ALTER PROCEDURE [SPDeleteRole]
@Role_Id int
AS
BEGIN
  UPDATE [Role] SET IsActive = 0 WHERE RoleId = @Role_Id
  Select * from [Role] WHERE IsActive = 1 ORDER BY RoleName
END

我在我的应用程序中调用此SP,如下所示:

public List<RoleDTO> DeleteRole(int roleId)
{
  OAParameter oaParameter = new OAParameter();
  oaParameter.ParameterName = "Role_Id";
  oaParameter.DbType = System.Data.DbType.Int32;
  oaParameter.Value = roleId;
  List<RoleDTO> roleList = base.ExecWithStoreProcedureGetDataWithParam("SPDeleteRole", oaParameter);
  return AutoMapper.Mapper.Map<List<RoleDTO>>(roleList);
}

public List<T> ExecWithStoreProcedureGetDataWithParam(string query, OAParameter parameters)
{
  var queryResult = dbContext.ExecuteQuery<T>(query, CommandType.StoredProcedure, parameters);
  dbContext.Dispose();
  return queryResult.ToList();
}

现在我的问题是这个工作正常。但是当我刷新页面时,我失活的角色会出现在列表中。

我通过调试检查了来自SP的列表完全是Active Roles。但是,只要我刷新页面,角色已停用的角色就会再次出现在列表中。我已经通过在MSSQL SERVER中执行它验证了SP,它运行正常。

问题:

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以在处理dbcontext之前编写dbContext.SaveChanges()吗?