我有一些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,或者是显示sql的sql异常的属性.
解决方法
一个简单的方法是使用
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... }