이 상황이 있습니다 (MVC + EF)BLL 논리 - 데이터 액세스 패턴
데이터베이스에 두 개의 테이블 범주와 제품이 있습니다.
Initlialy, 카테고리에 대한 BLL을 만듭니다. BBL에는 CRUD 메소드가 있습니다.
D (삭제)에서. 이 메소드는 ID로 카테고리를 삭제합니다.
So. 카테고리 BBL에 관한 모든 작업이 완료되었습니다.
다음으로 제품 용 BLL을 만듭니다. 또한 CRUD 메소드도 있습니다.
C (만들기)보기. HTML을 보여줍니다. 이것은 제품 카테고리 목록입니다.
내가 원하는 문제는 여기에 요청 :
것은 내 프로젝트에 제품 BLL을 추가 할 때. 범주 BLL의 Delete 메서드를 수정해야합니다.
BBL에 DeleteProductByCategoryID()라는 새 메서드를 추가하고 싶습니다. 그리고 카테고리 BLL의 Delete 메소드에서 호출합니다.
public void Delete(int id)
{
xxxxx.DeleteProductByCategoryID(id);
categoryBLL.DeleteCategory(id);
}
이 메서드는 지정된 카테고리 ID의 모든 제품을 삭제합니다.
문제는 다음과 같습니다. DeleteProductByCategoryID() 메소드 (카테고리 또는 제품 BLL)는 어디에 만들어야합니까?
Controller.Product.Create()보기에서 범주 목록을 표시하려면 범주 컬렉션을 가져 오는 새 메서드를 만들고 싶습니다.이 메서드를 Product BLL 또는 BLL 범주에 넣어야합니까?
productBLL.CategoriesForProduct (id); 위의 방법은 중복 코드입니다. 범주 BLL이 먼저 생성되었습니다. 따라서 GetCategories()는 범주 BLL에있었습니다. Product BLL에서 새로운 메소드를 생성하거나 새로운 Category 인스턴스를 생성하고 GetCategories()를 호출해야합니까? –
@Giang 제 제안은 Product와 Category 사이의 관계를 쉽게 ** n에서 n **까지의 관계를 가능하게하기 위해 하나의 새로운 테이블을 소개합니다. 나는 코드가 중복되어 있다고 생각하지 않는다. "카테고리 BLL이 처음 생성되었습니다"란 정확히 무슨 뜻입니까? ** ShowCategoriesForProduct ** 메소드에는 ** 모든 ** 가능한 카테고리가 아닌 제품이 지정된 카테고리 만 가져옵니다. categoryBLL.GetCategories()를 호출하면 현재 선택한 제품에 대해 표시 할 카테고리를 어떻게 알 수 있습니까? – pasty