0
请考虑这种模式 缓慢的实体框架查询,可快速生成SQL
它是一个健身中心管理应用
ADHERANT是成员表
题词是预订表
SEANCE是各个会话表
的降神表含有非常FEWS行(大约7000)
现在查询:
var q = from n in ctx.SEANCES
select new SeanceJournalType()
{
ID_ADHERANT = n.INSCRIPTION.INS_ID_ADHERANT,
ADH_NOM = n.INSCRIPTION.ADHERANT.ADH_NOM,
ADH_PRENOM = n.INSCRIPTION.ADHERANT.ADH_PRENOM,
ADH_PHOTO = n.INSCRIPTION.ADHERANT.ADH_PHOTO,
SEA_DEBUT = n.SEA_DEBUT
};
var h = q.ToList();
此采取3秒左右至极为永恒, 产生的相同SQL查询几乎是瞬间的
SELECT
1 AS "C1",
"C"."INS_ID_ADHERANT" AS "INS_ID_ADHERANT",
"E"."ADH_NOM" AS "ADH_NOM",
"E"."ADH_PRENOM" AS "ADH_PRENOM",
"E"."ADH_PHOTO" AS "ADH_PHOTO",
"B"."SEA_DEBUT" AS "SEA_DEBUT"
FROM "TMP_SEANCES" AS "B"
LEFT OUTER JOIN "INSCRIPTIONS" AS "C" ON "B"."INS_ID_INSCRIPTION" = "C"."ID_INSCRIPTION"
LEFT OUTER JOIN "ADHERANTS" AS "E" ON "C"."INS_ID_ADHERANT" = "E"."ID_ADHERANT"
有什么想法发生了什么事情,或者如何解决这个问题?
感谢
你在什么版本的EF上?还要注意'ToList'不仅执行查询,还会消耗结果(读取值并填充对象),所以对于7K记录,3秒就可以。 –
我首先使用EF DB 6。13 – user2475096
的事情是,等效生成的SQL查询是即时的? – user2475096