我在我的项目中使用 EF core 2 作为 ORM。我在执行这个查询时遇到了这个问题:
var query = (from droitsGeo in _entities.DroitsGeos
join building in _entities.Batiments
on droitsGeo.IdPerimetre equals building.IdBatiment
where droitsGeo.IdUtilisateur == idUser &&
droitsGeo.IdClient == idClient &&
building.Valide == true &&
droitsGeo.IdNiveauPerimetre == geographicalLevel
orderby sort ascending
select new GeographicalModel
{
Id = building.IdBatiment,
IdParent = building.IdEtablissement,
Label = building.LibBatiment,
});
第一次执行大约需要 5 秒,第二次不到一秒,如下所示:
第一次执行查询:
经过时间 EF: 00:00:04.8562419
首次执行查询后:
时间流逝 EF: 00:00:00.5496862
时间流逝 EF: 00:00:00.6658079
时间流逝 EF: 00:00:00.6176030
我使用存储过程有相同的结果。
当我在 SQL Server 中执行 EF 生成的 sql 查询时,不到一秒就返回了结果。
EF Core 2 有什么问题还是我错过了配置中的某些内容?