asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

ASP.NET中显示Linq To SQL输出的SQL语句


发布日期:2021年07月29日
 
ASP.NET中显示Linq To SQL输出的SQL语句
最近在使用Linq To SQL的时候为了了解不同Linq语句对性能造成的不同影响需要获得Linq To SQL生成的SQL语句

如果是在桌面程序中只需要

_contextLog = ConsoleOut;

即可在控制台输出SQL语句可是在ASPNET中又该怎么办呢?

这时我想起了StringWriter用它就可以代替ConsoleOut帮我们接收输出的日志保存在一个StringBuilder里

于是构造一个辅助类

using System;

using SystemCollectionsGeneric;

using SystemLinq;

using SystemWeb;

using SystemIO;

using SystemText;

namespace ClowwindyModels

{

public static class LogHelper

{

public static StringBuilder Log = new StringBuilder();

public static TextWriter In = new StringWriter(Log);

public static string GetAllLog()

{

InFlush();

return LogToString();

}

public static void Clean()

{

Log = new StringBuilder();

In = new StringWriter(Log);

}

}

}

再添加一个页面logaspx用来显示日志

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Log.aspx.cs" Inherits="Clowwindy.Log" %>

using System;

using SystemCollectionsGeneric;

using SystemLinq;

using SystemWeb;

using SystemWebUI;

using SystemWebUIWebControls;

using ClowwindyModels;

namespace Clowwindy

{

public partial class Log : SystemWebUIPage

{

protected void Page_Load(object sender EventArgs e)

{

if (RequestUserHostAddress != )

{

ResponseEnd();

return;

}

LiteralText = LogHelperGetAllLog()Replace(\n\n

);

}

protected void btn_Clean_Click(object sender EventArgs e)

{

LogHelperClean();

LiteralText = null;

}

}

}

最后在所有new DataContext的地方

加上_contextLog = LogHelperIn:

public Repository()

{

_context = new TDataContext();

_contextLog = LogHelperIn;

}

打开logaspx即可看到之前执行的SQL语句

上一篇:在ASP.Net中应用Javascript

下一篇:asp.net页面中浮动广告js注意事项