WCF Ria Services con Entity Framework 4.1

Il framework WCF RIA Services, tramite Wizard, supporta la creazione di DomainService partendo da ObjectContext di LINQ to Entities o un DataContext di LINQ to SQL, il team di sviluppo sta lavorando al ha rilasciato il toolkit con il supporto del nuovo DbContext rilasciato con EF 4.1 Code First, ed altre nuove funzionalità, tra cui la preview per JQuery
La flessibilità di questo mini-framework è tale, che potete lavorare da subito con DbContext e Code-First o utilizzare un vostro D.A.L. personalizzato, semplicemente rinunciando alla comodità del Wizard e scrivendo un po’ di codice a mano, cosa che non dovrebbe essere un problema per chi è interessato ad utilizzare Code-First o D.A.L. personalizzato.
        In soluzioni n-layer il template di Visual Studio più indicato è quello WCF RIA Services Class Library.

Una volta creato il vostro CustomContext che eredita da DbContext, dovete aggiungere una nuova classe di tipo “Domain Service Class”. Nel successivo wizard dovete cliccare “ok“, il resto andrà fatto via codice.
        Il team di Entity Framework ha rilasciato la CTP dei Power Tools,
        un’extension per VS che genera tutto il DbContext partendo da un Database esistente
.

A questo punto dovreste avere una classe simile a questa:

    using //altre reference ad assembly
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;

    [EnableClientAccess()]
    public class DomainService1 : DomainService
    {
    }

Al suo interno va creato un costruttore che istanzia il vostro CustomContext ed alcuni override di metodi della classe base DomainService

    [EnableClientAccess()]
    public class CustomDomainService : DomainService
    {
        private CustomContext _ctx;

        public CustomDomainService()
        {
                _ctx = new CustomContext();
        }

        protected override void Dispose(bool disposing)
        {
                if (disposing)
                {
                        _ctx.Dispose();
                }

        base.Dispose(disposing);
        }

        public override bool Submit(ChangeSet changeSet)
        {
                return base.Submit(changeSet);
        }

        protected override bool PersistChangeSet()
        {
            try
            {
                    _ctx.SaveChanges();
                    return base.PersistChangeSet();
            }
            catch (Exception ex)
            {
                return false;
            }
        }
    }

Poi vanno aggiunti i metodi per le operazione CRUD o personalizzate:

    public IEnumerable GetAnagrafica()
    {
        return this._ctx.Anagraficas;
    }

Per ogni classe che verrà esposta nel CustomDomainService occorrerà specificare quale proprietà svolgerà la funzione di Chiave decorandola con l’attributo [Key] delle DataAnnotation:

    public class Anagrafica
    {
        [Key]
        public int id_anagrafica { get; set; }
        // altre proprietà
    }

Per approfondire i concetti di WCF RIA Services, vi invito a leggere gli articoli già pubblicati sull’argomento, tra i quali:
WinFxItalia – Introduzione NET RIA Services
Realizzare Applicazione Completa Silverlight WCF RIA Services MVVM

Aggiornamento:
Qualche info in più la trovate qui

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...