使用Linq插入新记录时,如何获取SQL命令文本?

使用Linq插入新记录时,如何获取SQL命令文本?,linq,insert,Linq,Insert,我想获取linq生成的实际SQL查询。db.Log是一个文本编写器,您可以使用它来获取查询的文本 var newUser = new tblUser() { Email = strEmail, Password = strPassword, DateBirth = DateTime.Parse(strDateBirth), }; db.tblUsers.InsertOnSubmit(newUser); db.SubmitChanges(); 它将把查询文本写入标准输出

我想获取linq生成的实际SQL查询。

db.Log是一个文本编写器,您可以使用它来获取查询的文本

var newUser = new tblUser() { 
    Email = strEmail,
    Password = strPassword,
    DateBirth = DateTime.Parse(strDateBirth),
};
db.tblUsers.InsertOnSubmit(newUser);
db.SubmitChanges();

它将把查询文本写入标准输出。

检查此项。您可以使用
DataContext.Log
属性。

您需要将DataContext.Log属性设置为编写器,您可以在插入响应后将编写器包装在stringbuilder上。编写stringbuilder.tostring

db.Log = Console.Out
var newUser = new tblUser()
{ 
    Email = strEmail,
    Password = strPassword,
    DateBirth = DateTime.Parse(strDateBirth),
};
db.tblUsers.InsertOnSubmit(newUser);
db.SubmitChanges();

这对我不起作用。为什么?出去?我正在使用ASP.NET,这是一个web应用程序,我想我需要响应。写入到输出。我还尝试使用Response.wirte,但它不打印任何内容。
                        StringBuilder sb = new StringBuilder();
                StringWriter writer = new StringWriter(sb);
                Context.Log = writer;
                ...
                    DOINSERT & SUBMITCHANGES
                ...
                Response.Write(sb.ToString());