#976 - ASP.NET ed Entity Framework: query di filtro ed ordinamento con EntityDataSource

Il controllo EntityDataSource è stato introdotto con il SP 1 di ASP.NET 3.5 e consente di sfruttare un object model basato su Entity Framework all'interno di un'applicazione ASP.NET, sfruttando l'approccio visuale e dichiarativo offerto dai controlli DataSource.
Un esempio base di utilizzo di questo controlli si può trovare nello script #960.

Una volta costruito il mapping ed utilizzato un EntityDataSource per estrarre dati, il passo successivo consiste nello sfruttare criteri di filtro. Se non si hanno particolari criteri da voler applicare e si vogliono solo sfruttare i parametri operando una comparazione, è sufficiente impostare la proprietà AutoGenerateWhereClause su true e poi aggiungere i parametri alla collection WhereParameters.

<asp:EntityDataSource ID="CostumerDS" runat="server"  
  ConnectionString="name=NorthwindEntities"  
  DefaultContainerName="NorthwindEntities" 
  AutoGenerateWhereClause="True"> 
  <WhereParameters> 
    <asp:ControlParameter ControlID="Countries" Name="Country" PropertyName="SelectedValue" Type="String" /> 
  </WhereParameters> 
</asp:EntityDataSource>

Nell'esempio viene fatto un filtro utilizzando un controllo di tipo DropDownList denominato Countries.
In alternativa è possibile specificare una query agendo sulla proprietà Where e scrivendo la query in formato Entity SQL, ad esempio così:

<asp:EntityDataSource ID="CostumerDS" runat="server"  
  .. Where="it.CompanyName LIKE @CompanyName"> 
  <WhereParameters> 
    <asp:ControlParameter ControlID="CompanyName" Name="CompanyName" PropertyName="Text" Type="String" /> 
  </WhereParameters> 
</asp:EntityDataSource>

In questo esempio viene fatto un filtro utilizzando un operatore come LIKE con un valore preso da un controllo di tipo TextBox.

Lo stesso identico discorso può essere fatto per i criteri di ordinamento, potendo agire sulle proprietà AutoGenerateOrderByClause e OrderBy. Nel primo caso deve essere specificata una collection di OrderByParameter seguendo la stessa filosofia utilizzata per i criteri di filtro, mentre nel secondo si può impostare anche un criterio fisso.

Per approfondimenti si veda:

#960 - Il controllo EntityDataSource in ASP.NET 3.5 SP1
http://www.aspitalia.com/script/960/Controllo-EntityDataSource-ASP.NET-3.5-SP1.aspx

IL CONTENUTO
CONNECTIONSTRING
Ti serve una stringa di connessione ad un database?
PROVIDER ASP.NET 2.0, 3.5 e 4.0

Seleziona il tuo provider per avere il web.config pronto per Membership, Roles e Profile API.

SCRIPT VIA E-MAIL

Iscriviti alle nostre newsletter unoscript@lgiorno e Xcript per ricevere gli script via e-mail.

MEDIA
IN EVIDENZA
MISC