저는 Entity 프레임 워크를 사용하기 시작했습니다. 비즈니스 레이어의 클래스가 Entity Framework에서 생성 된 엔티티와 어떻게 잘 어울리는 지 혼란 스럽습니다. .Entity 프레임 워크를 사용할 때 비즈니스 로직을 어디에 둘 것인지 혼란합니다.
클래식 ADO.NET에서 작업 할 때 예를 들어 Customer라는 클래스를 사용하고 데이터베이스 상호 작용을 처리하기 위해 DALCustomer라는 다른 클래스를 사용할 수 있습니다.이 구조에서는 계산을 수행하고 인스턴스를 필터링하고 delcare하는 코드를 넣었을 것입니다 Customer 클래스에서 저장, 업데이트 및 삭제를 수행하는 DAL의 권한.
Customer라는 테이블이있는 경우 Entity 프레임 워크는 Customer라는 엔터티를 만들고 이것이 내 혼란이 시작되는 곳이며이 엔터티는 비즈니스 계층에서 Customer의 필요성을 제거합니까? 본질적으로 비즈니스 계층에서 일반적으로 사용되는 모든 필드와 메서드는 Entity Framework에서 생성 된 엔터티에 포함됩니까? 또는 계산, 필터링에 필요한 비즈니스 로직을 수행하는 데 필요한 필드와 메서드를 여전히 포함하고 있으며 데이터 액세스를 처리하도록 선언 된 EF DAL의 인스턴스가 여전히 필요한 클래스가 CustomerBL이라는 비즈니스 계층에 여전히 있어야합니다.
비즈니스 클래스 (이 경우 CustomerBL)가 있어야하는 경우 고객 엔터티에서 생성 된 필드가 CustomerBL에서 다시 작성되거나 Customer 엔터티의 인스턴스가 CustomerBL 그래서 2 개 장소에서 필드를 선언 할 필요가 없을 것입니다.
EF에서 생성되고 BL 클래스에 필요한 필드는 어떻게 처리합니까? 약간의 샘플을 제공 할 수 있습니까? –
글쎄, 내가 BL/DAL 엔티티에서 /로 데이터를 복사하는 메소드가 필요하다는 것과 DAL에서 액세스하지 못하도록 리포지토리 패턴을 구현하는 방법이 필요하다는 사실에서 빠져있다. ObjectSet 자체를 직접 호출하는 대신 CRUD 작업을위한 저장소를 호출합니다. – dutzu
부분 클래스는이를 처리하는 방법입니다. –