2010-11-14 6 views
0

У меня есть 3 лица учителя, Тема, и учебный год SchoolYearSubject. Школа, Учитель и Тема имеют много SchoolYearSubject. SchoolYear должен иметь много предметов, каждый из которых имеет своего одного Учителя, поэтому я использую SchoolYearSubject для хранения этих отношений.C# Entity Framework: Вычитание объекты

class Teacher { ICollection<SchoolYearSubject> } 
class Subject { ICollection<SchoolYearSubject> } 
class SchoolYear { ICollection<SchoolYearSubject> } 
class SchoolYearSubject { Teacher, Subject, SchoolYear } 

Например: У нас есть учебный год 2010, 3 предмета SÁ, вВ и СБН и 3 учителя TĀ, Tb, тк.

SchoolYear 2010 имеет 2 предмета sA и sC с преподавателями tA и соответственно tC, поэтому у него есть 2 объекта SchoolYearSubject, один со ссылкой на субъект sA и преподаватель tA, а другой - с субъектом sC и учителем tC.

Как я могу получить для каждого учебного года предметы, которых еще нет в этом учебном году, без сохранения локальной информации о предметах, присутствующих уже в школе?

Я попытался с помощью

SchoolYear SchoolYear = (SchoolYear 2010); 
Db.Subjects.Except(SchoolYear.SchoolYearSubjects.Select(schoolYearSubject => schoolYearSubject.Subject)).ToList() 

, но он не работает, в результате чего NotSupportedException «не удалось создать постоянное значение типа 'SchoolYearSubject. Только примитивные типы (' такие как Int32, String, и Guid ') в этом контексте. " как и ожидалось.

ответ

1

Предполагаю, что у вашего класса Subject есть идентификатор? Вы можете создать массив идентификаторов, которые вы не хотите загружать и использовать Contains:

Смежные вопросы