UI、BLL、DALを使用して3層アーキテクチャを構築しようとしています。リポジトリパターンでEntityFrameworkを使用しています。
私の質問は次のとおりです。EntityFrameworkによって生成されたエンティティは私のBLLの一部として機能することになっていますか、それともこれらは単なるDALオブジェクトですか?
質問する理由は、コードを複製しているように感じるからです。例:データベースから直接EntityFrameworkによって生成されたDAL.CatEntityがあります。これはすべて元気でダンディです。次に、リポジトリ(DALの一部)を使用してデータをDAL.CatEntityにプルします。次に、このDAL.CatEntityをBLLで使用し、そのデータをすべて引き出して、BLL.Catに変換します。次に、このBLL.CatをUIレイヤーで使用します。
以下は、いくつかの非常に単純化されたコードです。
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の両方を持つ必要はないようです。リポジトリをDLLとして使用しながら、EntityFrameworkエンティティをBLLの一部として使用できますか?
ありがとう。