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

前端之家收集整理的这篇文章主要介绍了c# – 如何看待在LINQ to SQL中的SubmitChanges上导致错误的sql?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些LINQ to sql,有时会抛出一个

“Cannot insert duplicate key row in object ‘dbo.Table’ with unique index
‘IX_Indexname’.The statement has been terminated.”

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

更新:我应该提到我知道GetChangeSet()方法,我想知道DataContext上是否有一个属性显示后执行sql,或者是显示sqlsql异常的属性.

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

解决方法

一个简单的方法是使用 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...
}

猜你在找的C#相关文章