";在y毫秒内找到x个匹配结果“;在EF6 LINQ中

本文关键字:结果 LINQ EF6 quot | 更新日期: 2023-09-27 18:20:58

我试着寻找这个解决方案,在我看来应该很简单,但找不到适合实体框架和LINQ的解决方案。所以,要么我遗漏了一些非常琐碎的东西,要么我无法正确地表达我的需求。

无论如何,在一些较旧的ASP/AASP.NET项目中,我看到了向网站访问者生成的输出,例如"在1320毫秒内找到1个匹配的结果"。我希望在一个新的EF6 MVC 5,Razor项目中也能显示这种信息。至少用于调试目的。但我在C#代码中找不到实现这一点的方法。

希望这是一件简单的事情

谢谢你们,伙计们!

p.S.毫秒部分对我来说更重要。

";在y毫秒内找到x个匹配结果“;在EF6 LINQ中

您可以使用Stopwatch和ViewModels的组合来显示以下内容:

public class MyCustomViewModel
{
  public TimeSpan QueryDuration { get; set;}
  public IEnumerable<SomeModelClass> Persons { get; set; }
}
public ActionResult MyActionMethod()
{ 
    var vm = new MyCustomViewModel();
    Stopwatch _watch = Stopwatch.StartNew()
    vm.Persons = executeQueryHere().ToList();
    vm.Queryduration = _watch.Elapsed;
    return View(vm);
} 

请注意,如果由于延迟执行而没有实现查询,那么这可能会出错——您希望调用.ToList()AsEnumerable<>这只是一个伪代码,给你一个简单的方法

编辑:

其他比我做得更好的第三方库是MiniProfiler(示例位于www.nerddinner.com-屏幕左上角)和Glimpse。