3 Stimmen

Jemand bekommen Silverlight Ria Domain Service OutputCaching zu arbeiten?

Ich versuche, clientseitiges Caching in Silverlight zu verwenden, indem ich einen Domänendienst in einem RIA-Dienst wie folgt dekoriere:

[OutputCache(OutputCacheLocation.Client,3600,UseSlidingExpiration = true)]
public IQueryable<State> GetMyStates()
{
    return entities.States;
}

Ich verwende auch eine DomainDataSource mit einem Filter:

<riaControls:DomainDataSource.FilterDescriptors>
 <riaControls:FilterDescriptor  
    Operator="StartsWith" 
    PropertyPath="StateCode" 
    Value="{Binding ElementName=txtElementName, Path=Text}" />
</riaControls:DomainDataSource.FilterDescriptors>

und ich sehe keine beobachtbaren Caching-Effekte, die sowohl bei jeder Filteränderung als auch bei jeder Seitenaktualisierung auf die Datenquelle zurückgehen.

Hat jemand das clientseitige Caching für Domains Services zum Laufen gebracht?

3voto

Die Zwischenspeicherung von Ausgaben wird deaktiviert, wenn Sie versuchen, eine zusätzliche LINQ-Abfrage anzugeben. Sie sollten die obige Abfrage ändern, um eine Abfragemethode zu verwenden, die einen String-Parameter für den Zustandsnamen akzeptiert, und dann einen Ausgabe-Cache für diesen.

[OutputCache(...)]
public IQueryable<State> GetMyStates(string stateNamePart)
{
  return entities.States.Where(st => ...);
}

Weitere Informationen über die OutputCaching-Unterstützung finden Sie unter Zwischenspeicherung der RIA-Dienstausgabe Gegen Ende des Artikels weist er auf die Einschränkung hin, dass weitere LINQ-Abfragen für das Caching nicht funktionieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X