繁体   English   中英

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

[英]“Found x matching results in y miliseconds” in EF6 LINQ

我试图寻找这种解决方案,我认为这应该很简单,但是找不到适用于Entity Framework和LINQ的解决方案。 因此,我错过了一些琐碎的事情,或者无法正确表达我的要求。

无论如何,在几个较旧的ASP / ASP.NET项目中,我看到输出正在生成给网站访问者,例如“在1320毫秒内找到1个匹配结果”。 我也希望在新的EF6 MVC 5 Razor项目中展示这种信息。 至少出于调试目的。 但是我找不到在C#代码中实现此方法的方法。

希望这很简单。

感谢大伙们!

PS毫秒部分对我来说更重要。

您可以结合使用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 -屏幕的左上角)和一瞥

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM