Come eseguire una stored procedure con Entity Framework 4.0

datelunedì 19 aprile 2010 alle 23.13  - posted by Manuel Scapolan in Entity Framework

Ecco come chiamare una stored procedure con Entity Framework 4.0, il codice è preso dalla presentazione fatta all'ultimo evento di 1nn0va:
// Chiama la stored usp_Authenticate passando username e password
var db = new BlogEntities();
var user = db.ExecuteStoreQuery<User>("exec usp_Authenticate {0},{1}",
           username, password);

Web Congress 3.0: Entity Framework 4.0 vs NHibernate, slide e codice

datesabato 17 aprile 2010 alle 9.28  - posted by Manuel Scapolan in NHibernate | Entity Framework | Eventi

web congress 1nn0vaVenerdì 16 aprile si è svolto a Pordenone l'evento più importante dell'anno organizzato da 1nn0va sulle tecnologie web.
Quest'anno ho avuto l'onore di farne parte come speaker presentando una sessione sull'accesso ai dati via ORM (Object-Relational Mapping) in un paragone tra il veterano NHibernate ed il promettente Entity Framework 4.0 di Microsoft.

Devo dire che Microsoft ha fatto un gran lavoro per colmare il gap che esisteva tra la prima versione dell'Entity Framework e gli altri protagonisti del settore. Una delle caratteristiche più apprezzate della nuova release è la possibilità ora concreta di utilizzare le proprie classi di dominio senza dover necessariamente ereditare dalla classe base EntityObject. La cosa si fa poi ancora più interessante se sfruttiamo il nuovo sistema di template (T4) che ci permette di generare automaticamente dall'Entity Data model (EDM) le classi di dominio in "modalità" POCO (Plain Old CLR Object).

Per chi fosse interessato in fondo al post trova i link per scaricare le slide e la solution di Visual Studio 2010 con tutto il codice sorgente.

L'applicazione di esempio è un semplice blog engine sviluppato in ASP.NET MVC 2.0 con l'obiettivo di separare per quanto possibile la logica di business dalla presentation e dall'accesso ai dati.

web congress 1nn0va solution L'architettura è a quattro livelli ed in particolare:
  • SampleBlog.Web: progetto di tipo ASP.NET MVC 2.0 ovvero il livello di presentazione dei dati
  • SampleBlog.Model: progetto che astrae la parte Model dell'MVC per slegare la logica di dominio dalla presentazione e che contiene le nostre classi POCO
  • SampleBlog.AppServices un Service-Layer che qui gioca un po' il ruolo del Repository
  • SampleBlog.CommonPersistence: uno dei tre livelli di persistenza, utilizza ADO.NET "Legacy" quindi SqlCommand, SqlDataReader e stored procedure
  • SampleBlog.NHibernatePersistence: utilizza NHibernate e un mapping su file xml
  • SampleBlog.EntityFrameworkPersistence: utilizza Entity Framework però in versione "Persistence Ignorance", ovvero mappato sulle classi POCO del nostro modello

Il tutto condito con Windsor il framework IoC di Castle Project che permette di scegliere di volta in volta quale progetto di persistenza usare.

Ricordo comunque che l'applicazione è stata realizzata esclusivamente con l'ottica di mostrare l'accesso ai dati tramite Entity Framework ed NHibernate in contrapposizione a quello che normalmente si fa con ADO.NET "Classic", non prendetela quindi come esempio di architettura a quattro livelli.

 

Slide e codice dell'evento disponibili per il download:

About me

manuel scapolanSono un consulente informatico. Nel 2004 terminati gli studi in Ingegneria Informatica (1° livello), ho iniziato come freelance collaborando con una ditta di consulenza informatica ed una agenzia di marketing e comunicazione nello sviluppo di applicazioni web. Attualmente divido il lavoro di sviluppatore e progettista web con attività di formazione nel settore della programmazione.
View Manuel Scapolan's profile on LinkedIn

Follow me on Follow manuelscapolan on Twitter

Calendario


<<  settembre 2010  >>
lumamegivesado
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Disclaimer

Eccetto dove diversamente specificato, i contenuti di questo sito sono rilasciati mediante:
creative commons
Attribuzione: Non commerciale
Condividi allo stesso modo. R.2.5

Books (a bit more about my library)

Domain Driven Design - Eric Evans Applying Domain-Driven Design and Patterns - Jimmy Nilsson Refactoring to Patterns - Joshua Kerievsky Design Patterns -  Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides Code Complete Second Edition - Steve McConnell Patterns of Enterprise Application Architecture - Martin Fowler Agile Principles, Patterns, and Practices in C# - Robert C. Martin xUnit Test Patterns - Gerard Meszaros Refactoring - Martin Fowler CLR via C# Second Edition - Jeffrey Richter Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries - Krzysztof Cwalina, Brad Abrams Don't make me think! - Steve Krug Bulletproof Ajax - Jeremy Keith

Manuel Scapolan Copyright © 2007 - 2010 - Tutti i diritti riservati - Powered by BlogEngine.NET 1.5.0.7 - silk icons by famfamfam - Time CET