我正在尝试使用UI,BLL和DAL构建三层体系结构。我正在使用实体框架与存储库模式。
我的问题是:实体框架生成的实体是否应该作为我的BLL的一部分,还是仅仅是DAL对象?
提问的理由是因为它感觉就像我在复制代码。例如:我有一个由实体框架直接从我的数据库生成的DAL.CatEntity。这一切都很好,很棒。然后我使用我的存储库(这是我的DAL的一部分)将数据拉入DAL.CatEntity。然后,在我的BLL中使用这个DAL.CatEntity,将所有的数据抽出,并将其转换为BLL.Cat。然后我在我的UI层中使用这个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,
//....
}
}用户界面:
public ActionResult method(){
Cat cat = BLL.GetCat();
//......
}似乎没有必要同时拥有Cat和CatEntity。我可以使用我的EntityFramework实体作为我的BLL的一部分,同时使用存储库作为我的DLL?
谢谢。