C# &引用;在y毫秒内找到x个匹配结果”;在EF6 LINQ中

C# &引用;在y毫秒内找到x个匹配结果”;在EF6 LINQ中,c#,asp.net-mvc,linq,entity-framework,C#,Asp.net Mvc,Linq,Entity Framework,我试图寻找这个解决方案,在我看来应该很简单,但找不到适合EntityFramework和LINQ的解决方案。所以,要么我遗漏了一些非常琐碎的东西,要么我不能恰当地表达我的需求 无论如何,在一些较旧的ASP/ASP.NET项目中,我看到了向网站访问者生成的输出,例如“在1320毫秒内找到1个匹配结果”。我希望在一个新的EF6MVC5,Razor项目中也能显示这种信息。至少用于调试目的。但我找不到在我的C代码中实现这一点的方法 希望这是一件简单的事情 谢谢大家 附言部分对我来说更重要 您可以使用秒表

我试图寻找这个解决方案,在我看来应该很简单,但找不到适合EntityFramework和LINQ的解决方案。所以,要么我遗漏了一些非常琐碎的东西,要么我不能恰当地表达我的需求

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

希望这是一件简单的事情

谢谢大家


附言部分对我来说更重要

您可以使用秒表和视图模型的组合来显示:

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);
} 
公共类MyCustomViewModel
{
公共TimeSpan查询持续时间{get;set;}
公共IEnumerable Persons{get;set;}
}
公共操作结果MyActionMethod()
{ 
var vm=新的MyCustomViewModel();
秒表
vm.Persons=executeQueryHere().ToList();
vm.Queryduration=\u watch.appeased;
返回视图(vm);
} 
请注意,由于延迟执行,如果您不具体化查询,这可能会出错-您希望调用
.ToList()
AsEnumerable
这只是一个虚拟代码,为您提供了一种简单的方法

编辑:


其他第三方库在这方面比我做得更好(例如www.nerddinner.com-屏幕左上角)和。

在服务方法调用和使用之间使用性能计时器
var timer=timer.Start();var results=Service.search();var ms=timer.Stop().持续时间EF6不提供查询执行时间信息。我们通常有一个helper Timer委托
var ms=Timer.Measure(()=>{//code来度量执行时间})用于此目的。如果您只是出于调试目的才真正关注此内容,请查看提供此类详细信息的或。谢谢您,cackharot。不幸的是,无论我使用什么样的计时器库,我都会遇到这样的错误:“'System.Timers.Timer'不包含'Measure'的定义”。谢谢你,Serv!您的解决方案确实有效,但是,我对该解决方案的实际逻辑有一些问题——在哪里使用它以及如何在MVVM中保留结果。不管怎样,尽管如此,你还是回答了这个问题。