Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何调试linq到sql InsertOnSubmit语句?_C#_.net_Linq To Sql_Debugging - Fatal编程技术网

C# 如何调试linq到sql InsertOnSubmit语句?

C# 如何调试linq到sql InsertOnSubmit语句?,c#,.net,linq-to-sql,debugging,C#,.net,Linq To Sql,Debugging,下面的代码可以正常工作 db.DBUsers.InsertOnSubmit(new DBUser { AllTheStuff = valuesBeyondYourWildestDreams } ); db.SubmitChanges(); 我猜数据库发生了变化,提交失败,因为映射已关闭。 由于linq visualiser不适用于我(修复该问题的额外点数),我想找到另一种方法来了解到底出了什么问题,以及提交失败的原因 更新 我试着用 db.SubmitChang

下面的代码可以正常工作

db.DBUsers.InsertOnSubmit(new DBUser
    {
        AllTheStuff = valuesBeyondYourWildestDreams
    }
);
db.SubmitChanges();
我猜数据库发生了变化,提交失败,因为映射已关闭。
由于linq visualiser不适用于我(修复该问题的额外点数),我想找到另一种方法来了解到底出了什么问题,以及提交失败的原因

更新
我试着用

db.SubmitChanges(ConflictMode.FailOnFirstConflict);

获得一个例外,但提交似乎有效。除了数据库中没有实际的新实体之外。

首先,我会:

db.Log = Console.Out;

如果可以选择,可以尝试使用SQL Server Profiler—启动新跟踪,连接到相关数据库,然后选择要捕获的事件

对于基本LINQ调试,我发现SP:StmtCompleted(在存储过程下)和SQL:StmtCompleted(在TSQL下)足以向您展示SQL LINQ试图运行的内容


如果你发现你收到了很多不需要的命令,你可以把它们过滤掉。例如,我过滤掉了来自msdb和master数据库的所有内容。

这在为我们调试linqtosql时非常有效

Its将日志信息发送到输出窗口


您也可以使用-将您的LINQ代码复制到其中,引用数据库,并放入转储以有效地调试LINQ。

什么是异常,以及堆栈跟踪?没有异常。除了我的记录在数据库中不存在,所以我的程序的其余部分会停止运行。如果我现在听起来有点迟钝,很抱歉,但我在一个库项目中,没有console.db.Log只需要一个TextWriter-你可以创建一个文件来登录。你有调试器吗?然后查看输出窗口。是的,我看到了,但没有相关的显示。我只看到各种垃圾,一些来自其他查询的来电,但从来没有看到这个查询。看来提交的更改没有提交任何内容。。