SqlSiteMapProvider - OnSiteMapChanged událost nikdy požáry?

hlasů
0

Dělám Wicked kód implementace SqlSiteMapProvider, s výjimkou VB.NET.

Je tu pár věcí, s kódem, který způsobuje problémy, a já nechápu, jak to má fungovat tak, jak je to napsáno v článku. Já jsem za předpokladu, že kód přímo z článku uvedeny níže. Jsem vložit kód zde pro snadné prohlížení

První otázka - za depedency instance dříve (linek 134-137) je vytvořen strom (151-160) - takže jakmile přidáte depedency do http.cache (165-167), přičemž OnSiteMapChanged události (242) požáry immmediately - takže celý fázi postupného běžet znovu - a to smyčky mnohokrát až konečně něco dělá to zastavit. (I prošel něj a počítal kód smyček alespoň 20krát, než jsem se vzdal snaží uhodnout, když narazil poslední)

OK, takže to opravit právě jsem přesunul kód vytvořit závislost na PO strom je postaven těsně před vložením do http.cache (takže HasChanged vlastnost hodnotu false při přidávání do http.cache a nechcete uvíznout v tomto pseudo-ifinite smyčkou).

Stále mám problém i když - pokaždé, když načtení stránky, tím BuildSiteMap () hity a linka 121 kontroluje, zda _root není null - zdá se, že nikdy není null poté, co se poprvé postaven ... to je dobře, protože já ne chtějí zasáhnout dB pokaždé. Teď jsem vložit záznam do tabulky ... The OnSiteMapChanged událost nikdy požáry. Jak jsem procházení stránek na aplikaci se sitemap neodráží nově vložený záznam - krokování kódu, vidím, že šek na řádku 121 se stále způsobuje funkce zkratu ... The sitemap obnoví pouze tehdy, když i re -start Visual Studio, která způsobí, že soukromý _root pole, aby se stal opět null, a re-staví sitemap, což odráží nové změny .. (osvěžující prohlížeč nebo spuštění nové instance prohlížeče nefunguje) ...

EDIT: otázka pocházel z hloupý ‚Set NOCOUNT ON‘ LINE IN vrcholu mé UCHOVÁVÁN PROC. Zřejmě to BREAKS dotazu oznámení. Zdá se, že toto tvrzení je vnímána jako výsledek sady a že druhá, skutečný výrok dotaz ruší sadu výsledků za následek oznámení. To bylo velmi těžké najít a nikde v dokumentaci MSDN, dokud jsem přidal poznámku. Doufám, že to ušetří někdo lakomec jsem prošel!

Položena 11/01/2010 v 05:03
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

JEDNÁ pocházel z hloupý ‚Set NOCOUNT ON‘ LINE IN vrcholu mé UCHOVÁVÁN PROC. Zřejmě to BREAKS dotazu oznámení. Zdá se, že toto tvrzení je vnímána jako výsledek sady a že druhá, skutečný výrok dotaz ruší sadu výsledků za následek oznámení. To bylo velmi těžké najít a nikde v dokumentaci MSDN, dokud jsem přidal poznámku. Doufám, že to ušetří někdo lakomec jsem prošel!

Odpovězeno 26/01/2010 v 21:27
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more