in

DotNetMarche

.NET Framework User Group delle Marche

aiutino

Last post 23 May 2009 2:47 by fastlink30. 4 replies.
Page 1 of 1 (5 items)
Sort Posts: Previous Next
  • 26 Apr 2009 10:06

    aiutino

     ciao a tutti, sto' usando l'entity framework e mi servirebbe un suggerimento. cioe' ho 2 tabelle collegate tra loro (user, dove user contiene libro), ora mi servirebbe poter estrarre da libro un ristretto quantitativo di libro, cioe' mi servirebbe capire come potrei fare una cosa del genere:

    From u In ctx.user  Where u.iduser = iduser and u.libro=(from l in ctx.libro where e.data>"...")

     praticamente mi servirebbe fare un unica chiamata per recuperare il valore di user, ma che all'interno dello stesso mi ritorni un ristretto numero di libro, evitando di creare un anonymous (select new with...), e' possibile???

     

    grazie

  • 28 Apr 2009 0:51 In reply to

    Re: aiutino

    Puoi esprimere condizioni direttamente sulla proprietà libro, ad esempio se vuoi solo i libri che hanno data maggiore di un certo valore puoi fare where u.libro.data > Param

    La comodità è proprio quella di poter fare query sul modello ad oggetti come se gli oggetti fossero direttamente in memoria.

    alk.

    --
    Continua ciò che hai cominciato e forse arriverai alla cima, o almeno arriverai in alto ad un punto che tu solo comprenderai non essere la cima. (Seneca)
    Alkampfer's Place
  • 03 May 2009 12:53 In reply to

    Re: aiutino

     ti ringrazio per la risposta!

     

    avrei un altro problema, avendo necessita' di salvare contemporaneamente una serie di informazioni (libri), per la precisione 31 righe, ho pensato di utilizzare la 

    .BeginSaveChanges(SaveChangesOptions.Batch, AddressOf endSave, entity)     ... (dimenticavo, uso ado.net data services con silverlight)

     il problema e' che mi da' sempre errore, solo se decremento il numero di righe da salvare funziona correttamente (passo da 31 a 29).

    se vado a vedere con fiddler la dimensione del pacchetto, quando funziona e'  64341 mentre se salvo tutte le righe e' sicuramente qualcosa di + (immagino sui 72k)

    mi chiedo, e probabilmente e' cosi, non si possono trasferire pacchetti maggiori di 64k?

    se cosi fosse, e' possibile aggirare l'ostacolo?  e come? sta' cosa mi sta' facendo impazzire

     

     non ho trovato info utili per risolvere la cosa, ma forse non ho cercato bene.

     

    grazie ancora

  • 07 May 2009 2:04 In reply to

    Re: aiutino

     Allora, ado.net data services li ho visti proprio di sfuggita, per cui non so aiutarti di preciso. Ricorda però che ad esempio WCF di base per i web services http mi sembra che di base limiti il pacchetto a tipo 65k, per cui penso che tu debba agire su qualche settaggio per permettere blocchi più grandi, in wcf è semplice, in dataservices non ho idea ;).

     Cmq a mio avviso di conviene fare batch più piccoli forse, magari raggruppa a blocchi di 10 e metti una progress bar nel client che dice "fatti 10 record" fatti 20 record e cosi via. In questo modo non hai problemi anche se devi salvare tipo 10000 righe

     alk.

    --
    Continua ciò che hai cominciato e forse arriverai alla cima, o almeno arriverai in alto ad un punto che tu solo comprenderai non essere la cima. (Seneca)
    Alkampfer's Place
  • 23 May 2009 2:47 In reply to

    Re: aiutino

     di conseguenza si avrebbe un altro problema: se c'e' un errore nel secondo pacchetto (per esempio), gli altri dati sarebbero validati, quelli del secondo pacchetto no, e questo non e' possibile, in quanto ho bisogno che tutti i dati vengano validati.

     

    comunque ho risolto:

    http://support.microsoft.com/kb/820129

     non e' il massimo come soluzione, ma al momento mi sembra l'unica soluzione possibile

    ho portato la dimensione massima del messaggio http a 128k...

Page 1 of 1 (5 items)
Powered by Community Server (Commercial Edition), by Telligent Systems