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