Próbuję trochę popracować z Entity Framework i mam pytanie dotyczące rozdzielania warstw.
Zwykle używam interfejsu UI -> BLL -> DAL i zastanawiam się, jak tutaj używać EF.
Mój DAL zwykle byłby podobny
GetPerson(id)
{
// some sql
return new Person(...)
}
BLL:
GetPerson(id)
{
Return personDL.GetPerson(id)
}
Interfejs użytkownika:
Person p = personBL.GetPerson(id)
Moje pytanie brzmi teraz: skoro EF tworzy mój model i DAL, czy dobrym pomysłem jest owinięcie EF w mój własny DAL, czy to tylko strata czasu?
Jeśli nie muszę owijać EF, czy nadal umieściłbym mój Model.esmx w swojej własnej bibliotece klas, czy też dobrze byłoby po prostu umieścić go w mojej BLL i tam pracować?
Naprawdę nie widzę powodu, aby umieścić EF w moim własnym DAL, ale chcę wiedzieć, co robią inni ludzie.
Zamiast mieć powyższe, pominąłbym DAL i po prostu zrobiłbym:
BLL:
GetPerson(id)
{
using (TestEntities context = new TestEntities())
{
var result = from p in context.Persons.Where(p => p.Id = id)
select p;
}
}
Co robić?