回答

收藏

如何查看你在哪里?LINQ to SQL中的SubmitChanges上导致错误的sql?

技术问答 技术问答 222 人阅读 | 0 人回复 | 2023-09-14

我有一些LINQ to SQL,有时候会抛出一个
% a: R8 e1 z% P# _3 Y2 k不能有唯一的索引’IX_Indexname’的对象’dbo.Table’重复键行插入中间。句子终止了。1 U5 _8 M" ~& N7 f- s1 ?6 i
如何打开日志记录或至少调试?datacontext检查在造成错误时正在执行什么sql?8 ~! y. W; k+ A1 r5 ]* W" u
更新:0 S( `( v0 H  E$ B* |* ?9 p8 F) D
我应该提到我是对的GetChangeSet()了解方法,我想知道DataContext是否有一个属性可以显示最终执行的属性SQL,或者在sql一个属性可以在异常情况下显示SQL。
0 P* N/ J. R, @0 \1 \关于这个错误的奇怪之处在于,只有一个更新集中在变化中,唯一需要更改的字段是日期时间字段,不在导致错误的索引中。5 F" I: a" `* Z; D+ |2 T3 p
                                                               
% P! I; x5 ?1 b% w3 L" u0 p/ x    解决方案:                                                                : ?: J( c2 h2 S
                                                                一种简单的方法是使用它DataContext.Log属性:& j0 M% S7 h8 _. h0 V
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...}
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则