";在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.毫秒部分对我来说更重要。
您可以使用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。