206 messaggi dal 07 ottobre 2004
ciao a tutto

voglio fare una cosa credo banale, ma non ho capito come si fa...

vorrei estrarre dal mio db un numero x di campi in maniera ramdom, normalmente avrei fatto:

Selet Top(10) from pippo where (UrlImg IS NOT NULL)
Order BY NEWID()

e lo mettevo ad esempio in una query nel dataset...

e con linq come posso fare, ho fatto delle prove inserendo la query nella prorieta select del linqdatasource, ma non funziona perche mi dice che "select non è una proprieta o metodo valido"

come posso fare??

ciao
A titolo di informazione, in LINQ gli operatori di partizionamento sono Take e Skip. Take permette di recuperare le prime x righe da una lista di dati, mentre Skip consente di recuperare i dati a partire dall'elemento x+1.

Esempi:
var a = list.Take(x);
var b = list.Skip(x);


Per quanto riguarda il discorso random, può dipendere dall'algoritmo di estrazione. Che cosa avevi in mente in particolare?

Ciao, Ricky.
Modificato da rickyvr il 06 settembre 2008 12.26 -

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
438 messaggi dal 04 agosto 2002
Contributi
ciao,

qui trovi un esempio che fa esattamente quel che chiedi: http://linqinaction.net/blogs/main/archive/2008/01/10/randomizing-linq-to-sql-queries.aspx

... secondo risultato in Google con linq+random+query, no farina del mio sacco


vladi
206 messaggi dal 07 ottobre 2004
Mi basterebbe tirare fuori 10 prodotti in maniera casuale, nulla di complicato.

ciao
206 messaggi dal 07 ottobre 2004
vladimiro ha scritto:
ciao,

qui trovi un esempio che fa esattamente quel che chiedi: http://linqinaction.net/blogs/main/archive/2008/01/10/randomizing-linq-to-sql-queries.aspx

... secondo risultato in Google con linq+random+query, no farina del mio sacco


vladi


Grazie adesso provo
Non avevo bene inteso la natura della domanda, per questo ho inserito la spiegazione di Take e Skip, con cui puoi estrarre x elementi contigui a partire da un indice (il cui valore può essere random).

Facci sapere se la soluzione proposta da Vladimiro ti va bene, in caso contrario vediamo come risolvere il tuo problema.

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
206 messaggi dal 07 ottobre 2004
rickyvr ha scritto:
Non avevo bene inteso la natura della domanda, per questo ho inserito la spiegazione di Take e Skip, con cui puoi estrarre x elementi contigui a partire da un indice (il cui valore può essere random).

Facci sapere se la soluzione proposta da Vladimiro ti va bene, in caso contrario vediamo come risolvere il tuo problema.

Ciao, Ricky.


La soluzione proposta da Vladimiro è ottima, ma avrei risolto in maniera piu semplice...

Ho fatto una vista nel db in questo modo
SELECT TOP (5) ID, IDInternal, CategoryID, ManufacturerID,
FROM dbo.Products
ORDER BY NEWID()

Ho aggiunto la vista nella classe che mappa il db ho aggiunto la vista, e poi dalla paggina la richiamo con il linqdatasource come se fosse una semplice tabella..

funziona correttamente.

ciao e grazie

E poi nella pagina la richiamo tramite
438 messaggi dal 04 agosto 2002
Contributi
imbesi ha scritto:

La soluzione proposta da Vladimiro è ottima, ma avrei risolto in maniera piu semplice...


Semplice e bella (era lì a portata di mano). Dopo qualche mumble mumble avrei fatto la stessa cosa.

v

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.