我们正在使用MEF来自定义ASP MVC应用程序的某些功能。我们使用的是.NET 4.0和SQL Server 2008.当在MEF程序集内部的视图中使用EF4和LINQ语句时,我们遇到了一些非常奇怪的行为。
使用MEF作为导入程序集的一部分执行时,下面的代码将超时。
当它在主组件中拉出并执行时,它将在不到一秒的时间内运行。
如果日期范围设置为一天,MEF实施最终将在大约15秒内完成。
如果我们使用表而不是视图,它将在MEF实现中正常工作<1秒。
除了在MEF代码中执行外,下面的代码和视图无处不在。
在MVC Web应用程序中使用EF4时,MEF是否会引入任何特殊限制或问题?我们可以找到解决这个问题的方法,但是我想知道这是否是我们使用MEF错误的症状?
DateTime startDate = DateTime.Now.AddDays(-30);
DateTime endDate = DateTime.Now;
var _Items = dto.ClientContext.vwItemLists.Where(c => c.CreatedOn > startDate && c.CreatedOn <= endDate);
_context.TotalItemsMatched = _Items.Count();
答案 0 :(得分:0)
由于缓存执行计划错误,可能会出现此问题。请参阅this similar issue。
This answer过去对我有用,当时我很确定某种一次性腐败是罪魁祸首,但请注意这是一个短期解决方案,在很多情况下是如果您没有解决问题的根源,问题可能会再次出现。
他提到了this article,这是一个不幸的重读,可以帮助你尝试找出为什么首先缓存了错误的执行计划。