我正在尝试构建一个具有UI、BLL和DAL的三层架构。我正在使用带有存储库模式的Entity Framework。
我的问题是:Entity Framework生成的实体是否应该作为我的BLL的一部分,还是只是DAL对象?
问这个问题的原因是因为它感觉像是在重复编写代码。例如:我有一个DAL.CatEntity,它是直接从我的数据库中由Entity Framework生成的。这很好。然后,我使用我的存储库(它是我的DAL的一部分)将数据拉入DAL.CatEntity中。然后,我在我的BLL中使用这个DAL.CatEntity,提取出它的所有数据,并将其转换成BLL.Cat。然后,我在我的UI层中使用这个BLL.Cat。
以下是一些超级简化的代码。
BLL
似乎没有必要同时拥有Cat和CatEntity。我能否只使用我的EntityFramework实体作为BLL的一部分,同时将Repository用作我的DLL?
谢谢。
我的问题是:Entity Framework生成的实体是否应该作为我的BLL的一部分,还是只是DAL对象?
问这个问题的原因是因为它感觉像是在重复编写代码。例如:我有一个DAL.CatEntity,它是直接从我的数据库中由Entity Framework生成的。这很好。然后,我使用我的存储库(它是我的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,
//....
}
}
UI:
public ActionResult method(){
Cat cat = BLL.GetCat();
//......
}
似乎没有必要同时拥有Cat和CatEntity。我能否只使用我的EntityFramework实体作为BLL的一部分,同时将Repository用作我的DLL?
谢谢。