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

如何从LINQ DataContext.SubmitChanges()获取TSQL查询

如何解决《如何从LINQDataContext.SubmitChanges()获取TSQL查询》经验,为你挑选了3个好方法。

我正在使用Linq to SQL.我有一个DataContext,我就是.SubmitChanges()'.插入标识字段时出错,我希望看到它用于插入此标识字段的查询.

我在快速监视器中看不到查询本身; 我在哪里可以从调试器中找到它?



1> Portman..:

很多人一直在编写自己的"DebugWriter"并将其附加如下:

// Add this class somewhere in your project...
class DebugTextWriter : System.IO.TextWriter {
   public override void Write(char[] buffer, int index, int count) {
       System.Diagnostics.Debug.Write(new String(buffer, index, count));
   }

   public override void Write(string value) {
       System.Diagnostics.Debug.Write(value);
   }

   public override Encoding Encoding {
       get { return System.Text.Encoding.Default; }
   }
}

// Then attach it to the Log property of your DataContext...
myDataContext.Log = new DebugTextWriter()

这将输出Linq-to-Sql所做的一切到Visual Studio的调试窗口.



2> Kev..:

继Portman的回答之后,如果你是一个控制台应用程序,它就像下面这样简单:

myDataContext.Log = Console.Out;

或者你可以使用像Linq2SQL Profiler这样的东西,这是一个相当优秀的工具,实际上是工作的正确工具:

Linq to SQL Profiler - Linq to SQL的实时可视化调试器



3> Taha Rehman ..:

实际上你的问题答案非常简单

只需将其粘贴到您的观察窗口即可

((System.Data.Objects.ObjectQuery)myLinqQueryVar).ToTraceString()

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有