Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Entity Framework e 3 layer
giovedì 06 febbraio 2014 - 21.25
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Bobo72
Profilo
| Newbie
10
messaggi | Data Invio:
gio 6 feb 2014 - 21:25
Ciao a tutti,
ho una dll (Data) dove, tramite EF, vengono create le classi DataModel.Context.cs e DataModell.tt. del mio database di prova.
Dalla (Business) aggiungo il riferimento a (Data) e quando utilizzo la proprieta creata da EF (DbSet<Clienti> Clientis) della context, non mi visualizza i metodi a meno che aggiungo il pacchetto NuGet di EF.
Potete aiutarmi magari con un piccolissimo esempio..!
Grazie...
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
ven 7 feb 2014 - 21:52
Ciao, se cerchi di accedere a particolari istruzioni di EF è normale che tu debba includere EF nel progetto di business... Ma dovresti utilizzare semplicemente codice linq to entity per accedere ai dati su dbset.
Per quanto riguardo il data access layer, EF può essere visto proprio come livello dati e a volte non è necessario aggiungere altro, in base anche alle tue necessità in realtà, e quindi puoi passare direttamente il dbcontext o dbset alle classi di business che poi con linq to entity eseguono le query necessarie, oppure puoi implementare un Repository pattern per aggiungere un livello di mezzo tra EF e business, e che può servire molto per potere fare unit test su business isolati dall'accesso hai dati.
Prova a vedere qualche tutorial su EF e ti suggerisco quello denominato code-first che ti spinge a scrivere un data access layer basato sulla scrittura del modello dati tramite classi dette POCO e cioè semplici classi contenenti solo proprietà e relazioni tra entità:
http://msdn.microsoft.com/it-it/data/jj193542
http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application
Dopo che hai provato a seguire i tutorial, se hai ancora dubbi chiedi pure
Edit: qualche link sul Repository pattern
http://msdn.microsoft.com/en-us/library/ff649690.aspx
http://www.asp.net/mvc/tutorials/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application
http://www.codeproject.com/Articles/688929/Repository-Pattern-and-Unit-of
Ciao,
Michael Denny
Software Developer & Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
Twitter: @dennymic
Bobo72
Profilo
| Newbie
10
messaggi | Data Invio:
lun 10 feb 2014 - 21:04
1953_Prova entity.zip
Ciao Michael,
ho visto i tutorial e fatto varie prove ma (dalla business) non riesco ad accedere al data layer utilizzando linq to entity senza referenziare EF.
Ti allego una piccola prova fatta su un unico progetto e fin qui tutto ok, il problema e capire come strutturare i layer per separare il tutto.
Grazie...
Roberto.
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
gio 20 mar 2014 - 17:43
1956_EntityFrameworkSample.zip
Ho dato un occhio al progetto, e mi sembra ok, ho spostato un po' di classi in vari progetti (Data, Business e Model), e ho notato che effettivamente per lo meno devi referenziare l'entity framework sull'applicazione, ma per il semplice fatto che si deve portare dietro delle dll che altrimenti non si porta dietro da solo dal Data. Ad ogni modo l'errore che ricevevi tu, non c'è più, il business referenzia soltanto Data e Model (senza EF).
Ti ho riallegato il progetto vs2013.
Se proprio non vuoi referenziare EF dall'applicazione, devi però fare in modo di copiarci le dll che richiede con uno script post-build, ma non trovo quale sia il problema di referenziare le dll, dato che ad ogni modo tali dll devono essere obbligatoriamente presenti per fare girare l'applicazione correttamente.
Michael Denny
Software Developer & Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
Twitter: @dennymic
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !