.ASP.NET 웹 API 저장소 패턴 서비스 계층 (비즈니스 로직)
내 ORM으로 Entity Framework를 사용하고 있습니다.
나는 다음과 같은 soluction 구조 (프로젝트)이 있습니다
- 웹 응용 프로그램 (asp.net 웹 API)
- 데이터 (DBContext, 저장소)를
- 인터페이스 (IRepository 등)
- 을 모델 (DB의 POCO 클래스)
예를 들어 내 PersonRepository (데이터 프로젝트) :
public class PersonsRepository : EFRepository<Person>, IPersonsRepository
{
public PersonsRepository(DbContext context) : base(context) { }
public IQueryable<Person> GetByAge(int age)
{
return DbSet.FirstOrDefault(ps => ps.age == age);
}
public void Delete(int personId, int age)
{
// Here I want to validate some stuff before deleting
// Business Rules need to be here!!
var attendance = new Attendance {PersonId = personId, Age = age};
Delete(attendance);
}
}
제 질문은 저의 리파지토리 메소드 안에 모든 비즈니스 로직을 구현하는 것이 맞습니까? 또한 필요한 경우 메시지 또는 유효성 확인을 반환하는 가장 좋은 방법은 무엇입니까?
도움에 감사드립니다.
사실 나는 John Papa Code Camper 프로젝트 (https : // github.com/johnpapa/CodeCamper 예제 코드에서 저장소 패턴은 사용자 지정 리포지토리에 대한 사용자 지정 구현입니다 ... GetByAge 메서드는 PersonRepo에만 사용됩니다 – VAAA
그래서 내게 말한 것은 비즈니스 규칙 또는 논리 (조건이 참이거나 모델 프로젝트 (POCO 클래스가있는 곳)에 어떤 필드가 올바른지 확인하려면 – VAAA
비즈니스 로직은 데이터 액세스가 아닌 비즈니스 로직 계층에 있어야합니다. – MikeSW