Я пытаюсь построить трехуровневую архитектуру с пользовательским интерфейсом, BLL и DAL. Я использую Entity Framework с шаблоном репозитория.
Мой вопрос: должны ли сущности, созданные Entity Framework, действовать как часть моего BLL, или это просто объекты DAL?
Причина, по которой я спрашиваю, заключается в том, что мне кажется, что я копирую код. Например: у меня есть DAL.CatEntity, который создается Entity Framework непосредственно из моей базы данных. Все это прекрасно и модно. Затем я использую свой репозиторий (который является частью моего DAL) для извлечения данных в DAL.CatEntity. Затем я использую этот DAL.CatEntity в своем BLL, извлекаю все его данные и преобразую их в BLL.Cat. Затем я использую этот BLL.Cat в своем слое пользовательского интерфейса.
Ниже приведен очень упрощенный код.
BLL
public Cat GetCat(string catName){
CatEntityRepository _repository = new CatEntityRepository;
Cat cat = null;
CatEntity catEntity = _repository.GetSingleCat();
cat = ConvertToCat(catEntity);
return cat;
}
private Cat ConvertToCat(CatEntity entity){
return new Cat(){
Name = entity.Name,
Color = entity.Color,
//....
}
}
UI:
public ActionResult method(){
Cat cat = BLL.GetCat();
//......
}
Кажется, нет необходимости иметь ОБЕ Cat и CatEntity. Могу ли я просто использовать свои EntityFramework Entities как часть моего BLL при использовании репозитория в качестве моей DLL?
Спасибо.