如何调试linq to sql InsertOnSubmit语句?
以下代码已经开始工作了。
db.DBUsers.InsertOnSubmit(new DBUser { AllTheStuff = valuesBeyondYourWildestDreams } ); db.SubmitChanges();
我的猜测是数据库发生了变化,提交失败,因为映射已关闭。
由于linq visualiser对我不起作用(修复它的奖励点),我想找到另一种方法来了解究竟出了什么问题以及为什么提交失败了。
更新
我试过用
db.SubmitChanges(ConflictMode.FailOnFirstConflict);
得到一个例外,但似乎提交工作。 除了数据库中没有实际的新实体。
如果是一个选项,您可以尝试使用SQL Server Profiler – 启动新跟踪,连接到相关数据库,然后选择要捕获的事件。
对于基本的LINQ调试,我发现SP:StmtCompleted (在Stored Procedures下)和SQL:StmtCompleted (在TSQL下)足以向您展示SQL LINQ尝试运行的内容。
如果您发现正在拾取大量不需要的命令,则可以对其进行过滤。 例如,我过滤掉了来自msdb和master数据库的所有内容。
对于初学者我会这样做:
db.Log = Console.Out;
您还可以使用LINQPad – 将LINQ代码复制到那里,引用数据库,并将转储放入以有效地调试LINQ。
- 您是否可以链接到使用BackgroundWorker的好示例,而无需将其作为组件放在表单上?
- entity framework的存储库+ UnitOfWork模式
- .NET的Double.ToString方法中的Round-two错误
- 如何以便携方式在C#中播放压缩声音文件?
- 即使安装和使用了System.IdentityModel.Tokens,也找不到JWTSecurityTokenHandler和SecurityTokenDescriptor
- .NET DateTime以time_t为单位
- 插件架构中的reflection与属性
- 有没有办法计算执行的IL指令的数量?
- 自定义GroupBox,带有自定义TextColor,BorderColor和Transparent BackColor