如何在asp.net中从Linq获取最后执行的查询?

时间:2014-09-11 10:14:32

标签: asp.net linq datacontext

我想在查询中发现它会抛出错误。下面是代码

try{
if (list1 != null)
            {
                foreach (cca item in list1)
                {
                      db.CCAs.InsertOnSubmit(item);
                 }
            }
if (list2 != null)
            {
                foreach (cca1 item1 in list2)
                {
                      db.CCAs1.InsertOnSubmit(item1);
                 }
            }
 db.SubmitChanges();
}
catch
{
}

在catch中,我想得到哪个查询抛出错误。我想只检索受影响的查询。

1 个答案:

答案 0 :(得分:1)

在您的情况下,您可以将保存操作划分为:

try
{
    if (list1 != null)
    {
        foreach (cca item in list1)
        {
            db.CCAs.InsertOnSubmit(item);
        }
        db.SubmitChanges(); 
    }
}
catch 
{
    //write error into log 
}
try
{
    if (list2 != null)
    {
        foreach (cca1 item1 in list2)
        {
            db.CCAs1.InsertOnSubmit(item1);
        }

        db.SubmitChanges();
    }
}
catch
{
    //write error into log
}

现在,您需要2个db调用,但它可以轻松处理异常。

<强> UPD 我不确定,但你可以在你的阻止块中尝试这样:

catch (YourExpectedExceptionType ex)
{
     //write into log for e.g
     _log.Write(ex.InnerExeption);
     _log.Write(ex.Source);
}