当前位置:  开发笔记 > 编程语言 > 正文

如何看待在LINQ to SQL中的SubmitChanges上导致错误的sql?

如何解决《如何看待在LINQtoSQL中的SubmitChanges上导致错误的sql?》经验,为你挑选了1个好方法。

我有一些LINQ to SQL,有时会抛出一个

"无法在对象'dbo.Table'中插入具有唯一索引'IX_Indexname'的重复键行.该语句已被终止."

有没有什么方法可以打开日志记录或至少调试到datacontext,看看在出现错误时正在执行什么SQL?

更新: 我应该提到我知道的GetChangeSet()方法,我想知道如果有一个显示已执行的最后一个SQL,或在SQL异常,显示了SQL财产上的DataContext属性.

关于此错误的奇怪之处在于,在更改集中,只有一个更新,并且唯一正在更改的字段是不在导致错误的索引中的日期时间字段.



1> Bradley Grai..:

一个简单的方法是使用DataContext.Log属性:

using (MyDataContext ctx = new MyDataContext())
{
    StringWriter sw = new StringWriter();
    ctx.Log = sw;

    // execute some LINQ to SQL operations...

    string sql = sw.ToString();
    // put a breakpoint here, log it to a file, etc...
}   


使用SQL事件探查器是首选解决方案,因为您根本不必更改代码.
推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有