Marc Gravell ha pubblicato un solution here che consente di definire una funzione che utilizza NEWID in una classe parziale per DataContext. Non collocarlo nella classe DataContext generata altrimenti gli aggiornamenti futuri eliminerebbero ciò che hai aggiunto.
Marc mostra come utilizzarlo con la sintassi di espressione della query. In alternativa, con notazione del punto, si potrebbe scrivere:
var results = dc.Table.OrderBy(r => dc.Random()).Take(n);
Nel caso in cui non hai familiarità con la creazione di una classe parziale, è sufficiente aggiungere una nuova classe per la vostra soluzione. Il suo nome non ha importanza finché la definizione della classe utilizza il nome della classe DataContext con la parola chiave partial
. Ad esempio, se il DataContext si chiama XYZDataContext
è possibile aggiungere una nuova classe denominata XYZDataContextPartial.cs
e definirlo come:
namespace YourNamespace
{
public partial class XYZDataContext
{
}
}
fonte
2010-03-03 06:18:39
perfetto! La soluzione di Marc ha funzionato esattamente come speravo. – benpage