Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1908, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Query personalizzate in LINQ-to-SQL

Se volete approfittare delle peculiarità dell'Object Relational Mapping di LINQ-to-SQL ma non volete rinunciare alle vostre abitudini nello scrivere query mediante istruzioni SQL, l'oggetto DataContext espone un comodo metodo chiamato ExecuteQuery.

Supponiamo di avere un'applicazione connessa al database Northwind e che abbiamo già eseguito tutte le operazioni di mapping, con particolare riferimento alla tabella Orders, con successiva aggiunta dell'origine dati sotto forma di oggetto (vedere al riguardo questo mio articolo).

Da codice, innanzitutto ottengo l'istanza del DataContext:

Private dc As New NorthwindDataContext

Quindi invio una serie di istruzioni SQL mediante il metodo ExecuteQuery, al fine di ottenere tutti gli ordini effettuati da un determinato cliente:

Dim query = dc.ExecuteQuery(Of Orders)("SELECT * FROM ORDERS WHERE CUSTOMERID='VINET'")

Il metodo necessita che sia specificata l'entità sulla quale va eseguita la query, quindi, in questo caso, la classe Orders. L'argomento del metodo è costituito dalle istruzioni SQL, in più è disponibile un overload che consente di passare un ParamArray.

ExecuteQuery restituisce un tipo IEnumerable, che può quindi essere facilmente associato a controlli per la manipolazione dei dati (come, per esempio, un BindingSource tramite la sua proprietà DataSource).

Lo snippet per Visual Studio 2008, installabile tramite pacchetto .Vsi creato col mio Vsi Builder, è disponibile qui:

Alessandro

Print | posted on domenica 1 giugno 2008 16:06 | Filed Under [ Visual Basic LINQ ]

Powered by:
Powered By Subtext Powered By ASP.NET