Допустим, у меня есть эта модель:
class Teacher
{
public string Name { get; set; }
public IEnumerable<Student> Students { get; set; }
}
class Student
{
public string Name { get; set; }
public IEnumerable<Teacher> Teachers { get; set; }
}
И с помощью некоторого алгоритма пользователь может видеть только подмножество учителей и учеников, для этого примера я могу видеть только учителей и учеников, которые имеют имя, котороеначинается с той же буквы, что и моя.Поэтому я хочу что-то вроде:
var myViewableTeachers = persistenceStore.Teachers();
, которое вернуло бы, например, "Джойс", Джонас "и" Джуджа ", но НЕ" Стив "," Билл "или" Зафод "
СейчасПредположим, что у Учителя "Джойс" есть коллекция учеников с именами "Арнольд", "Беверли", "Джолин", "Джером" и "Зак".
Существует ли механизм персистентности или OR / M, который сделаетуверены, что когда я получу доступ к «Студентам Джойса», он вернет только «Джолин» и «Джером» для меня и «Арнольд» для пользователя с именем «Аннабель»?
- Я хочу это во всем хранилищетаким образом, если я позже создам объект Classroom с учениками и учителями, я хочу, чтобы эти коллекции отображали только доступных учителей и учеников.
- Алгоритм определения того, что доступно, может быть довольно сложным и зависеть от других данных вхранилище.
- SQL, noSQL или другие варианты в порядке.