Sto cercando di lavorare un po 'con Entity Framework e ho una domanda sulla separazione dei livelli.
Di solito uso l'interfaccia utente -> BLL -> DAL e mi chiedo come usare EF qui.
Il mio DAL di solito sarebbe qualcosa di simile
GetPerson(id)
{
// some sql
return new Person(...)
}
BLL:
GetPerson(id)
{
Return personDL.GetPerson(id)
}
UI:
Person p = personBL.GetPerson(id)
La mia domanda ora è: poiché EF crea il mio modello e DAL, è una buona idea avvolgere EF nel mio DAL o è solo una perdita di tempo?
Se non avessi bisogno di avvolgere EF, inserirò comunque Model.esmx nella sua libreria di classi o andrebbe bene inserirlo nel mio BLL e lavorarci un po '?
Non riesco davvero a vedere il motivo per avvolgere EF nel mio DAL, ma voglio sapere cosa stanno facendo gli altri.
Quindi, invece di avere quanto sopra, tralascerei il DAL e lo farei solo:
BLL:
GetPerson(id)
{
using (TestEntities context = new TestEntities())
{
var result = from p in context.Persons.Where(p => p.Id = id)
select p;
}
}
Cosa fare?