偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺談如何在ASP.NET中了解LINQ語句性能

開發(fā) 后端
作者最近在使用Linq To SQL的時候,為了了解不同Linq語句對性能造成的不同影響,需要獲得Linq To SQL生成的SQL語句。為了實(shí)現(xiàn)這一功能,作者創(chuàng)建了一些小工具,供大家使用。

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

_context.Log = Console.Out;

即可在控制臺輸出SQL語句。可是在ASP.NET中又該怎么辦呢?

這時我想起了StringWriter。用它就可以代替Console.Out幫我們接收輸出的日志,保存在一個StringBuilder里。

于是構(gòu)造一個輔助類:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Text;

namespace Clowwindy.Models
{
    public static class LogHelper
    {
        public static StringBuilder Log = new StringBuilder();
        public static TextWriter In = new StringWriter(Log);
        public static string GetAllLog()
        {
            In.Flush();
            return Log.ToString();
        }
        public static void Clean()
        {
            Log = new StringBuilder();
            In = new StringWriter(Log);
        }
    }
}

  再添加一個頁面log.aspx,用來顯示日志:

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>SQL Log</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:Button ID="btn_Clean" runat="server" Text="清空" 
        onclick="btn_Clean_Click"/>
    <div>
        <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </div>
    </form>
</body>
</html>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Clowwindy.Models;

namespace Clowwindy
{
    public partial class Log : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.UserHostAddress != "127.0.0.1")
            {
                Response.End();
                return;
            }
            Literal1.Text = LogHelper.GetAllLog().Replace("\n","\n<br/>");
        }

        protected void btn_Clean_Click(object sender, EventArgs e)
        {
            LogHelper.Clean();
            Literal1.Text = null;
        }
    }
}

 ***在所有new DataContext的地方加上_context.Log = LogHelper.In:

        public Repository()
        {
            _context = new TDataContext();
            _context.Log = LogHelper.In;
        }

打開log.aspx,即可看到之前執(zhí)行的SQL語句。

【編輯推薦】

  1. LINQ橫向?qū)Ρ萬oreach方法
  2. 手把手教你用好LINQ to SQL
  3. 使用LINQ和ADO.NET創(chuàng)建Silverlight程序
責(zé)任編輯:彭凡 來源: cnblogs
相關(guān)推薦

2009-09-10 14:02:08

LINQ ASP.NE

2009-07-20 15:30:11

ASP.NET應(yīng)用

2009-07-22 16:11:43

ASP.NET AJA

2009-07-24 10:52:42

ASP.NET ISA

2011-10-14 10:37:54

ASP.NET

2009-07-21 14:16:02

ASP.NET管道優(yōu)化

2011-08-23 10:58:59

2009-07-23 15:24:37

ASP.NET Ima

2009-07-27 16:19:59

ASP.NET報表控件

2009-07-28 17:49:30

ASP.NET定期回收

2009-07-28 16:03:23

ASP.NET狀態(tài)服務(wù)

2009-07-20 17:12:17

ASP.NET訪問數(shù)據(jù)

2009-08-05 15:29:33

ASP.NET For

2009-07-22 13:24:24

ASP.NET MVC

2009-07-23 15:44:39

ASP.NET MVC

2009-08-10 10:19:47

ASP.NET組件設(shè)計

2009-08-05 11:00:46

獲得RowIndexASP.NET

2009-07-21 15:02:19

ASP.NET應(yīng)用程序

2009-07-27 13:01:28

TreeViewASP.NET

2009-08-19 10:54:42

ASP.NET數(shù)據(jù)訪問
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號