ObjectDataSource的DeleteMethod中的存储过程

时间:2013-12-12 20:25:05

标签: c# asp.net linq

我创建了一个存储过程,用于删除表中的日志(deleteLogs),并从我为其创建的DeleteMethod中运行它。我的问题是该方法中有另一个存储过程(recordLogs)根本不运行。

<asp:ObjectDataSource ID="LogsDataSource1" runat="server" SelectMethod="GetLogs" UpdateMethod="UpdateLog" DeleteMethod="DeleteLog" TypeName="ServiceData">
 <DeleteParameters>
  <asp:Parameter Name="Id"/>
 </DeleteParameters>
</asp:ObjectDataSource>

public void DeleteLog(int Id)
{
    getDataContext.deleteLogs(Id);  
    getDataContext.recordLogs(Id);      
}

但是如果我交换他们的订单就可以了。

public void DeleteLog(int Id)
{
    getDataContext.recordLogs(Id);
    getDataContext.deleteLogs(Id);        
}

一旦条目被删除,它就会退出该功能。

1 个答案:

答案 0 :(得分:0)

看来,recordLogs函数依赖于deleteLogs删除的值。

另外,考虑使用TransactionScope()包装这两个方法:

public void DeleteLog(int Id)
{
    using (var tran = new TransactionScope())
    {
        getDataContext.recordLogs(Id);
        getDataContext.deleteLogs(Id);
        tran.Complete();
    }
}