从列排序中显示自动生成的SQL代码

时间:2016-09-06 02:31:33

标签: c# asp.net-mvc entity-framework asp.net-mvc-4 webgrid

我希望能够在网格中的特定列上进行主要排序时,在数据库网页上显示这些自动生成的SQL代码。

对于Instance,如果单击数据库网页上的任何列标题,则所选列将被排序为主排序列,然后按升序或降序显示结果。

我的问题是,是否可以在排序过程中检索自动生成的SQL代码并将其显示在网页上?似乎也找不到任何关于此的资源。任何可以作为参考的阅读将非常感激。

1 个答案:

答案 0 :(得分:2)

您可以使用Context Log property轻松完成此操作。

using (var context = new BlogContext()) 
{ 
    context.Database.Log = Console.Write; 

    // Your code here... 
}

您可以将其用于记录到不同的地方。例如log to memoryfile以及使用不同类型的TextWriter

public class MyLogger 
{ 
    public void Log(string component, string message) 
    { 
        Console.WriteLine("Component: {0} Message: {1} ", component, message); 
    } 
}

//This could be hooked up to the EF Log property like this:

var logger = new MyLogger(); 
context.Database.Log = s => logger.Log("MyEFApp", s);

您可以参考此文档以获取更多信息:Logging and Intercepting Database Operations