Utilizzare l’ObjectContext ApplicationData da WCF Ria Service

LightSwitch permette di creare/gestire un database al suo interno senza utilizzare strumenti esterni. Questo DB è chiamato ApplicationData e verrà generato in produzione, in fase di deploy, utilizzando una connection string impostata tramite widzard.

Cosa avviene in pratica:

  • La connessione viene memorizzata, sempre con lo stesso nome “_IntrinsicData”, all’interno del web.config deployato.
  • L’ObjectContext di EF viene autogenerato nel file ServerGenerated\GeneratedArtifacts\ApplicationData.cs

Per utilizzare l’ObjectContext in un WCF Ria Service quindi basta:

  • Aggiungere il file al progetto WCF Service (As Link dato che verrà rigenerato)
  • Recuperare l’ObjectContext nel seguente modo:
EntityConnectionStringBuilder builder = new EntityConnectionStringBuilder();
builder.Metadata =
    "res://*/ApplicationData.csdl|res://*/ApplicationData.ssdl|res://*/ApplicationData.msl";
builder.Provider = "System.Data.SqlClient";
builder.ProviderConnectionString =
    WebConfigurationManager.ConnectionStrings["_IntrinsicData"].ConnectionString;

this.context = new ApplicationData.Implementation.ApplicationDataObjectContext(builder.ConnectionString);

In questo modo è possibile:

  • Eseguire query complesse sul nostro db applicativo (quelle supportate dal provider di EF)
  • Sopperire alle “mancanze espressive” delle query linq generate in LightSwitch e poter utilizzare entità custom definite nella nostra libreria (per esempio a fine reportistici)
  1. Lascia un commento

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: