我一直在想办法解决这个问题。这是一道面试考试题。我会把这个标记为家庭作业,因为我的最后一个问题是这样标记的。
我有这个对象模型:
部门:部门Id,名称
教师:教师ID,名字,姓氏,出生日期,年薪,部门ID
课程:课程ID,名称,教师ID,部门ID
学生:StudentId,FirstName,LastName,DateOfBirth,AverageScore,DepartmentId
系与教师、学生和课程有一对多关系。
Teacher has a 1 to many relationship with Course *Student* has a many to many relationship with Course
在我之前在这里问的一个问题中,我问了如何在学生和老师之间创建一个名为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;
}
}
我怎么会被这件事的下一部分卡住。
问题是。编写方法以获取某门课程的所有I人员-在SchoolManager中编写方法以获得特定课程的所有IP人员。您的方法应该返回一个IPeople的IENumerable,并使用您刚刚在SchoolManager中编写的现有GetAllIPeople方法。
一开始我觉得这很容易,应该使用where(c=>;c.CourseId==cId),其中cId被传递到方法中。However CourseId不在界面中,因为它不是学生和教师之间的共同属性。我知道,由于对象之间的关系,课程、学生和教师都将共享同一个部门ID。
然而,我完全不知道该如何回答这个问题。如果有人能为我指明正确的方向,我将不胜感激。
将Microsoft Visual Studio 2010与MS Entity Framework 4.0一起使用