1
대학 관리에 대한 .Net 솔루션 (CodeFirst 방식을 사용하는 Entity Framework)이 있습니다.Entity Framework : 관계가있는 개체 디자인
- DATAACCESS (DbContext 및 일반 저장소)
- 엔티티 (코드 첫 번째 클래스)
- 서비스 (서비스 클래스)
- 웹 : 프로젝트의 아키텍처는 다음과 같이이다 (설명이 중요하지 않은 MVC 프로젝트)
에게
- 코스 : 쉽게 질문을 만들기위한
, 난 단지합니다 (엔티티 층) 내 도메인에 대한 두 개의 클래스를 얘기하자 물론 많은 학생들이있을 수 있습니다. 그리고 해결책의 목적은 코스에 학생들을 추가하는 것입니다 (가운데에 몇 가지 유효성 검사가 있음). 당신이 볼 수 있듯이
Course.cs
public class Course { [Key] public int IdCourse { get; protected set; } public string Name { get; set; } public virtual ICollection<Student> Students { get; protected set; } public void AddStudent(Student student) { // Some Validation Students.Add(student); } }
는 클래스는 물론 학생을 추가하는 속성이 있습니다. 상황은 유효성 검사가 증가하고 있으며 현재 매우 복잡하며 데이터베이스와 더 많은 쿼리를해야합니다 ... 그래서 과정에 많은 책임이 있습니다!
그래서 나는 "추가"를 처리하고 모든 유효성 확인을하고 과정 클래스에서이 책임을 떠맡을 필요가 있다고 생각했습니다. 문제는 학생 수 집은 개인 회원코스입니다. 나는 학생을 서비스 클래스의 강좌에 추가 할 수 없습니다.
내가 문제를 해결하기 위해 생각하는 또 다른 방법, (서비스)에서 문맥에 관련 엔티티 (학생)를 추가하고,하지만 난이 DbContext을해야하기 때문에 내 저장소을 (휴식 것이 공공의). 그리고 DbContext를 Service 클래스에서 직접 사용하면 리포지토리에 아무런 문제가 없습니다.
그래서 어떻게 디자인해야합니까? 또는 문제를 해결하기 위해 무엇을해야합니까? 어떤 제안도 매우 잘받을 것입니다!
감사합니다.