2010-12-15 8 views
2

Für jeden RIA-Services-Gurus weiß jemand, wie man die Datenpuffer-Obergrenze von RIA-Services-Abfragedaten, die zum Silverlight-Client zurückkommen, erhöhen kann.Wie kann die Datenpuffergröße von RIA Services-Abfragen erhöht werden?

Ich habe eine RIA-Services-Abfrage, wo es eine übergeordnete Entität zurückgibt, zusammen mit einigen untergeordneten Entitätssammlungen, die als Teil der Datenantwort zurückkommen. Der Code für die Suche nach meiner RIA Service beginnt wie folgt aus:

 
    1: [EnableClientAccess()] 
    2: public class ContactsDomainService : LinqToEntitiesDomainService 
    3: { 
    4:  [Query(ResultLimit = 150)] 
    5:  public IQueryable SearchContacts(string jobFunction = default(string), 
    6:             string workPhone = default(string), 
    7:             string officeLocation = default(string), 
    8:             string firstName = default(string), 
    9:             string lastName = default(string), 
    10:             string address1 = default(string), 
    11:             string address2 = default(string), 
    12:             string city = default(string), 
    13:             int stateTypeId = 0, 
    14:             string zip = default(string), 
    15:             string email = default(string), 
    16:             Nullable departmentTypeId = null, 
    17:             Nullable sectionTypeId = null, 
    18:             Nullable divisionTypeId = null, 
    19:             Nullable governmentTypeId = null) 
    20:  { 
    21:   var results = from r in this.ObjectContext.Contacts 
    22:          .Include("ContactAddresses") 
    23:          .Include("ContactAddresses.CityType") 
    24:          .Include("ContactAddresses.StateType") 
    25:          .Include("ContactDepartments") 
    26:          .Include("ContactDepartments.DepartmentType") 
    27:          .Include("ContactDivisions") 
    28:          .Include("ContactDivisions.DivisionType") 
    29:          .Include("ContactEmails") 
    30:          .Include("ContactGovernments") 
    31:          .Include("ContactGovernments.GovernmentType") 
    32:          .Include("ContactJobFunctions") 
    33:          .Include("ContactJobFunctions.JobFunctionType") 
    34:          .Include("ContactOffices") 
    35:          .Include("ContactPhones") 
    36:          .Include("ContactPhones.PhoneType") 
    37:          .Include("ContactSections") 
    38:          .Include("ContactSections.SectionType") 
    39:       select r; 

Ich habe durch Tests bestätigt, dass die [Query (RESULT = 150)] Dekorateur wird die gesamte RIA Services Abfrage, SearchContacts() verursacht, zum Scheitern verurteilt und throw und Ausnahme, wenn Sie 150 bis 500 erhöhen. Ich vermute, dass ich eine allgemeine Datenbeschränkung von RIA-Diensten treffe.

Ich googelte ein wenig für dieses Problem und es sieht so aus, als könnten Sie die Datenpuffergröße eines WCF Web Service (beachten Sie WCF Service, nicht RIA Service), durch Bearbeiten der Web-Konfigurationseinstellungen, aber nicht sicher, ob dies würde auch in einer RIA-Services-Abfrage arbeiten.

Wenn jemand auf das gleiche Problem gestoßen ist und eine Lösung gefunden hat, antworten Sie bitte.

Vielen Dank im Voraus, John

Antwort

1
+0

Gene, danke für den Link ... dass der Trick! Es erscheint ein wenig merkwürdig, dass Microsoft nicht genau ankündigt, wie man das erreicht ... es wäre schön gewesen, wenn sie zumindest einen web.config-Kommentar mit einem Beispiel hinzugefügt hätten, das zeigt, wie man die Puffergröße erhöht. –

0

ich einen Fehler gehe davon aus dem Server ausgelöst werden?

Oder haben Sie einen Overhead auf dem Client? Ich habe keine erkennbare Puffergrößenbeschränkung auf dem Client gefunden (obwohl ich sicher bin, dass sie da sind).

Sie müssen die Puffergröße für WCF-Dienste erhöhen, wenn Sie viele Daten transportieren. Ich habe gerade keine spezifische Referenz verfügbar, aber eine Suche auf WCF Puffergröße web.config und Sie sollten mit einigen Treffern kommen.

Es ist gut, dass es auf diese Weise generiert wird, da Sie wahrscheinlich kein Bandbreitenproblem aufgrund von Datenzurückruf bei der Generierung öffnen möchten. Obwohl ich mich erinnere, dass es mir schwer gefallen ist, die Informationen zu finden, als ich das zum ersten Mal gesehen habe.

Verwandte Themen