di .NET e di altre amenità

IEnumerable Tales: Compilazione dinamica di query LINQ

Non sempre si è in grado di scrivere le query LINQ prima di compilare un progetto. Come si può immaginare la possibilità di compilare query composte dinamicamente a runtime è indispensabile. Nel blog di Scott Guthrie è uscito un post che parlava di questo qualche tempo fa, e stamane grazie ad un amico che ne aveva bisogno m'è tornato alla mente. Ecco quindi il link:

Grazie alla libreria (DynamicLibrary.cs) inclusa nei progetti di esempio si possono scrivere cose come la seguente:

   1: Brand brand = (from b in db.Brands
   2:                where b.BrandId == 2
   3:                select b).Single();
   4:  
   5: IQueryable<Car> cars = db.Cars.Where("Brand=@0", brand);
   6:  
   7: foreach (Car car in cars)
   8:     Console.WriteLine(car.Model);

La libreria aggiunge una serie di Extension Methods aggiuntivi che consentono ad esempio di usare una stringa come parametro di una Where...

...Ma non solo... se volete saperne di più, .

Technorati Tag: ,

Commenti

2008-02-16T21:04:04+01:00 #

Tutta quella serie di post di Scott è molto interessante, io a suo tempo la avevo messa tutta in un bel filozzo word formattato Laughing

Alk.

Gian Maria

2008-10-24T20:55:10+01:00 #

E se io volessi creare una stringa dinamica a run time ? è possibile ?
come si fa con sql per intenderci ...
del tipo :

if(miatextbox.text != "")
strWhere = "MIOCAMPO = '" + miatextbox.text + "'";

ecc...

è possibile con linq creare al volo una stringa di ricerca?

Franco

2008-10-24T21:40:32+01:00 #

Nulla ti vieta di farlo, se non il buonsenso. L'uso della concatenazione è sconsigliabile perchè puoi aprire la strada all'injection di codice dannoso.
L'uso dei parametri (@0, @1) anche in questo caso è d'obbligo.
Ciao!

Andrea Boschin