【问题标题】:How to get last executed query from Linq in asp.net?如何从 asp.net 中的 Linq 获取最后执行的查询?
【发布时间】:2014-09-11 10:14:32
【问题描述】:

我想在查询中找到它会引发错误。下面是代码

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 中,我想知道哪个查询抛出了错误。我只想检索受影响的查询。

【问题讨论】:

    标签: asp.net linq datacontext


    【解决方案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 块中尝试这样:

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

    【讨论】:

    • 如果我为每个列表设置数据库调用会花费更多时间。每个列表有超过 5000 条记录要更新。
    • 尝试捕获DataException并找到导致异常的源表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 2015-12-01
    • 2011-08-12
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 2017-12-18
    相关资源
    最近更新 更多