In questo precedente post abbiamo accennato all'esistenza di Entity SQL come altra metodologia di accesso ai dati in ambito ADO.NET Entity Framework oltre a LINQ-to-Entities. Sempre nel precedente post abbiamo visto come usare il metodo CreateQuery per eseguire un'interrogazione basata su sintassi SQL.
Nel presente post, invece, esemplifichiamo un'altra metodologia, costituita dall'utilizzo della classe ObjectQuery esposta dal namespace System.Data.Objects. Si tratta di una classe generica che va a riferirsi all'entità su cui intervenire, il cui costruttore riceve come argomenti la classe "mappata" e l'istanza dell'Object Context.
Riprendendo il consueto esempio del primo screen-cast su LINQ-to-Entities (a proposito, a breve il secondo), possiamo interrogare l'entità Products per ottenere l'elenco dei prodotti e visualizzarne alcune proprietà:
Imports System.Data.Objects
...
Private de As New NorthwindEntities
...
Dim query = New ObjectQuery(Of Products)("NorthwindEntities.Products", de)
For Each product In query
Console.WriteLine("{0}, {1}", product.ProductName, product.UnitPrice)
Next
Console.ReadLine()
Potete scaricare il code snippet per Visual Studio da qui:
In un prossimo post vedremo come filtrare il risultato dell'interrogazione utilizzando i metodi extension.
Alessandro