LINQ

There are 5 entries for the tag LINQ
LINQ e IEnumerable

Disquisendo di LINQ presso alcuni clienti mi sono reso conto che molti sviluppatori non ne hanno ben chiaro il funzionamento percui ricorre spesso la frase “Bello, ma LINQ costringe a inutili iterazioni”. Esempio: Prendiamo un array di interi e supponiamo di volere enumerare i valori >10 interrompendo il ciclo quando il valore contenuto è uguale a 12. foreach (int v in values) { if (v > 10) { Console.WriteLine("Value is: {0}", v); if (v > 12) break; } } in...

posted @ Monday, September 15, 2008 10:26 PM | Feedback (6)

Dynamic ordering with LINQ

Nei newsgroup ogni tanto si trovano delle domande "stuzzicanti" quella che di recente mi ha incuriosito più di altre è stata "Come faccio a ordinare una query LINQ in base al contenuto di una variabile?" ovvero, è possibile scrivere qualcosa del tipo: string column = "Country"; var ret = from c in db.Customers orderby column select c; Il codice compila ma non produce ovviamente il risultato sperato, ecco quindi una serie di possibili alternative che ho verificato con una semplice applicazione che vedete qui sotto:   Prima soluzione: (Quick & Dirty) Mega-switch e creare le...

posted @ Wednesday, February 13, 2008 7:10 PM | Feedback (6)

To attach or not attach?

Partendo da questo ottimo articolo di Janky, ho fatto fatto qualche prova con il metodo Attach del DataContext ottenendo dei risultati inizialmente inattesi che comunque rispettano quello che è il comportamento tipico del DataContext. Ho utilizzato questo banale esempio con l'intento di simulare uno scenario: Pagina1: Leggo un dato e lo modifico Pagina2: Visualizzo il rapporto e confermo le modifiche. Customer cust; //Page1, read customer, updates City property using(MyDataContext db1 = newMyDataContext()) ...

posted @ Wednesday, February 6, 2008 8:32 AM | Feedback (1)

Object Identity in LINQ To SQL

Avevo già accennato al concetto di Object Identity in LINQ To SQl tempo fa, ultimamente, parlando di LINQ To SQL, mi diverto a mettere in crisi chi mi ascolta mostrando questo esempio: //Read 'ALFKI' entry from Nothwind... MyDataContext db = new MyDataContext(); Customer cust = db.Customers.Where(c => c.CustomerID == "ALFKI").Single<Customer>(); Console.WriteLine("ALFKI Customer's city is:" + cust.City); //Updates ALFKI City to London string query = "UPDATE Customers SET City={0} WHERE CustomerID={1}"; int ret = db.ExecuteCommand(query, "London", "ALFKI"); Console.WriteLine("{0} record updated", ret); //Queries all customers living in London... Console.WriteLine("Geting customers in London..."); IQueryable<Customer> custInBerlin = db.Customers.Where(c => c.City == "London"); foreach (Customer c in custInBerlin) { Console.WriteLine("{0} lives in {1}",c.CustomerID, c.City); } L'output...

posted @ Sunday, February 3, 2008 11:19 AM | Feedback (3)

Linq To SQL e Databinding

A quanto pare LINQ To SQL, almeno nella beta2, non ama molto il databinding.Prediamo un esempio banale: mostrare il contenuto della tabella Customers di Northwind e aggiungere un nuovo cliente.Supponendo di avere già creato attraverso il designer di Visual Studio 2008 le varie entities il codice da scrivere è: 1: NwDataContext nw = new NwDataContext(@"Data Source=VMXP\SQLEXPRESS;Initial Catalog=Northwind"); 2:   3: public Form1 () 4: { 5: InitializeComponent(); 6: ...

posted @ Thursday, September 6, 2007 4:23 PM | Feedback (3)