На моем сайте MVC Учитель входит в систему и должен просматривать свои классы и все книги, используемые в его классах.
Учитель не должен видеть кого-то другого, класс или книгу.
Вот моя модель
public class Teacher
{
public int Id { get; set; }
public string Name {get; set;}
}
public class Books
{
public int Id {get; set;}
public string Title {get; set;}
public int CourseId {get; set;}
}
public class Course
{
public int Id {get; set;}
public int Name {get; set;}
public int TeacherId {get; set;}
}
Я использую RepositoryPattern с UnitOfWork.
Для того, чтобы все классы были показаны, я должен вставить в свой контроллер следующую строку:
var classes = classRepository.All.Where(x => x.TeacherId == currentTeacher.Id)
С BookControler дела пойдут хуже, так как мне нужно проверить все классы текущего учителя:
var classes = classRepository.All.Where(x => x.TeacherId == currentTeacher.Id)
var books = bookRepository.All.Where(x => classes.Contains(y => y.Id == x.CourseId)
Мне кажется, что такой подход может привести к некоторой функциональной ошибке.
я хотел бы, чтобы, когда учитель входил в мой репозиторий с автофильтром, чтобы хранить только данные, относящиеся к currentTeacher, следовательно, в моем контроллере у меня было бы:
var classes = classRepository.All; // Already filtered on currentTeacher
или
var books = bookRepository.All; // Already filtered on currentTeacher
Возможно ли это? И как?