Как получить sql, сгенерированный LinqToSql для метода обновления?
Я использую следующий код, чтобы показать sql, сгенерированный LinqToSql в окне вывода отладки VS2008, но он получает только сгенерированный метод выбора sql,
как найти метод обновления sql, сгенерированный LinqToSql?
Я знаю, что Sql Server Profiler и LinqPad могут его получить (сгенерированное sql-обновление), но я хочу показать их в VS2008 или записать в файл.
public partial class Linq2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DemoDataContext ctx = new DemoDataContext ();
// Then attach it to the Log property of your DataContext...
ctx.Log = new DebugTextWriter();
var product = ctx.Products.FirstOrDefault();
product.ProductName = "NewName1";
ctx.SubmitChanges();
}
}
// Add this class somewhere in your project...
public 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; }
}
}
И я получаю запрос sql-select в окне вывода отладки VS2008:
SELECT TOP (1) [t0].[Id], [t0].[ProductName] ……
FROM [dbo].[Products] AS [t0]
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 3.5.30729.1