如何将每个dbcontext查询的视图缓存创建过程重复到db(不仅仅是在开始时)?

时间:2018-01-10 09:07:39

标签: c# entity-framework entity-framework-6 nunit

我已经编写了测试,以便在第一次和后续查询期间收集有关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 或者也许可以在每个查询中重新创建视图缓存?

0 个答案:

没有答案