我听说过EF结果的缓存,而且这是默认的。我有以下存储库:
public class Model1Repository
{
private NEOGOV_IdeasEntities _dataContext;
public Model1Repository()
{
_dataContext = new NEOGOV_IdeasEntities();
}
public List<Status> Statuses()
{
var query = from i in _dataContext.Statuses select i;
return query.ToList();
}
}
接下来是控制器和方法:
public class TestController : Controller
{
private NEOGOV_Ideas.Models.Model1Repository _repository;
public TestController()
{
_repository = new NEOGOV_Ideas.Models.Model1Repository();
}
public ActionResult Test1()
{
_repository.Statuses();
_repository.Statuses();
_repository.Statuses();
_repository.Statuses();
return View();
}
}
据我理解,第一次调用状态(Statuses)方法后,结果应该会被缓存,但我在 SQL 档案中看到了以下信息:
exec sp_reset_connection
go
SELECT
[Extent1].[StatusID] AS [StatusID],
[Extent1].[StatusName] AS [StatusName]
FROM [dbo].[Statuses] AS [Extent1]
go
exec sp_reset_connection
go
SELECT
[Extent1].[StatusID] AS [StatusID],
[Extent1].[StatusName] AS [StatusName]
FROM [dbo].[Statuses] AS [Extent1]
go
exec sp_reset_connection
go
SELECT
[Extent1].[StatusID] AS [StatusID],
[Extent1].[StatusName] AS [StatusName]
FROM [dbo].[Statuses] AS [Extent1]
go
exec sp_reset_connection
go
SELECT
[Extent1].[StatusID] AS [StatusID],
[Extent1].[StatusName] AS [StatusName]
FROM [dbo].[Statuses] AS [Extent1]
go
什么是不正确的?