Archivio per la categoria WCF
Utilizzare l’ObjectContext ApplicationData da WCF Ria Service
Pubblicato da sierrodc in Entity Framework, LightSwitch, WCF il novembre 30, 2011
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)