我正在尝试使用 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。在将存储库用作我的 DLL 时,我可以只使用我的 EntityFramework 实体作为我的 BLL 的一部分吗?
谢谢。