我有一些 LINQ to SQL 有时会抛出
“无法在具有唯一索引的对象“dbo.Table”中插入重复的键行
‘IX_Indexname’。该语句已终止。”
有什么方法可以打开日志记录或至少调试数据上下文以查看引发错误时正在执行的 sql 吗?
Update:我应该提到我知道GetChangeSet()
方法,我想知道 DataContext 上是否有一个属性显示最后执行的 SQL,或者 sql 异常上是否有一个属性显示 SQL。
此错误的奇怪之处在于,在更改集中,只有一个更新,并且唯一正在更改的字段是不在导致错误的索引中的日期时间字段。
执行此操作的一个简单方法是使用数据上下文.日志 http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.log.aspx财产:
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...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)