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 è:
Ottenendo come prevedibile l'elenco dei clienti:
Ora proviamo ad inserire un nuovo Cliente:
Risultato: La tabella viene aggiornata ma il contenuto della DatagridView non cambia, volendola aggiornare bisognerebbe, dopo l'aggiornamento, scrivere qualcosa tipo:
In realtà è possibile evitare l'uso di GetNewBindingList() e il relativo scorrimento del contenuto in memoria della tabella usando questo approccio tutt'altro che intuitivo.
Il tutto funziona grazie al fatto che Table<T> espone IListSource il cui metodo GetList() e castabile verso BindingList.
Technorati Tags:
LINQ,
Databinding