Я застрял, пытаясь найти решение этой проблемы.Это вопрос, взятый из экзамена на собеседование.Я отмечу это как домашнее задание, так как мой последний вопрос был помечен для меня таким образом.
У меня есть эта объектная модель:
Department : DepartmentId, Name
Teacher : TeacherId, FirstName, LastName, DateOfBirth, AnnualSalary, DepartmentId
Курс : CourseId, Имя, TeacherId, DepartmentId
Student : StudentId, FirstName, LastName, DateOfBirth, AverageScore, DepartmentId
Кафедра имеет отношение 1 ко многим с Teacher , Student и Курс .
Учитель имеет отношения 1 ко многим с Курс * Ученик * имеет многоко многим отношениям с курсом
В предыдущем вопросе, который я задал здесь, я спросил, как создать интерфейс между учеником и учителем под названием IPeople, чтобы подчеркнуть всю общность.Я был направлен в правильном направлении и придумал
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace School.Code
{
public interface IPeople
{
string FirstName
{
get;
set;
}
string LastName
{
get;
set;
}
Int64 DepartmentId
{
get;
set;
}
DateTime DateOfBirth
{
get;
}
}
}
Затем мне нужно было создать IENumerable значение IPeople, которое я сделал, используя
public IEnumerable<IPeople> GetAllIPeople()
{
foreach (IPeople person in GetAllTeachers())
{
yield return person;
}
foreach (IPeople person in GetAllStudents())
{
yield return person;
}
}
Как бы я ни застрял сследующая часть этого.
Вопрос в том. Напишите метод, чтобы получить всех IPeople для курса - Напишите метод в SchoolManager, чтобы получить всех IPeople для определенного курса.Ваш метод должен возвращать IENumerable из IPeople и использовать существующий метод GetAllIPeople, который вы только что написали в SchoolManager.
Сначала я подумал, что это будет легко, и его следует просто использовать .where (c =>c.CourseId == cId) где cId был передан в метод.Как бы то ни было, CourseId в интерфейсе не является общим свойством ученика и учителя.Я знаю из-за отношений между объектами, что Курс, Студент и Учитель будут иметь один и тот же DepartmentID.
Я, однако, совершенно растерялся относительно того, как я даю ответ на этот вопрос.Если кто-то может указать мне правильное направление, я был бы признателен.
Использование Microsoft Visual Studio 2010 с MS Entity Framework 4.0