我已经编写了测试,以便在第一次和后续查询期间收集有关Entity Framework的一些指标。
...
[Test]
[TestCase(1)]
[TestCase(10)]
public void FatEF_Init(int _id)
{
// Arrange.
// Act.
_watch.Reset();
_watch.Start();
//Create dbContext, work with them and then dispose it.
using (var qmsUow = new FatDbContext(_sqlConnection.ToString()))
{
var result = qmsUow.SomeEntities.SingleOrDefault(se => se.Id == _id);
_watch.Stop();
// Fill DTO.
_info = new QueryDataDTO
{
Id = _id,
DurationTime = _watch.ElapsedMilliseconds,
};
// Assert.
Debug.WriteLine($"id: {_id}. {_info.DurationTime} ms.");
}
}
所以,你可以看到我用不同的参数运行我的测试2次。第一次打电话("冷和#34;)实体框架通过其初始化过程并在应用程序域中自我兑现(据我了解)然后它使第二个查询在"温暖"状态要快得多。
结果我得到两个执行结果(第一个约为9秒,第二个~2毫秒),但我想知道最初每10个请求的平均时间("冷和#34;状态)。
问:如何在测试迭代之间从内存中再次卸载和加载Entity Framework? (或清除视图缓存)
Q 或者也许可以在每个查询中重新创建视图缓存?