【发布时间】:2011-06-01 17:18:07
【问题描述】:
我一直在努力寻找解决此问题的方法。它是从面试考试中提出的问题。我会将此标记为作业,因为我的最后一个问题是这样标记的。
我有这个对象模型:
部门:部门ID、名称
教师:教师 ID、名字、姓氏、出生日期、年薪、部门 ID
课程:CourseId、姓名、TeacherId、DepartmentId
学生:StudentId、FirstName、LastName、DateOfBirth、AverageScore、DepartmentId
部门与教师、学生和课程是一对多的关系。
教师与课程是一对多的关系 *学生*与课程
有多对多的关系在我在这里提出的上一个问题中,我询问了如何在学生和教师之间创建一个名为 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;
}
}
}
然后我需要创建我使用的 IPeople 的 IENumerable 值
public IEnumerable<IPeople> GetAllIPeople()
{
foreach (IPeople person in GetAllTeachers())
{
yield return person;
}
foreach (IPeople person in GetAllStudents())
{
yield return person;
}
}
我怎么会被下一部分困住。
问题是。 编写方法以获取课程的所有 IPeople - 在 SchoolManager 中编写方法以获取特定课程的所有 IPeople。您的方法应返回 IPeople 的 IENumerable 并利用您刚刚在 SchoolManager 中编写的现有 GetAllIPeople 方法。
现在起初我认为这很容易,应该只使用 .where(c => c.CourseId == cId) 其中 cId 被传递到方法中。为什么 CourseId 不在界面中,因为它不是学生和教师之间的公共属性。我确实知道,因为课程、学生和教师都将共享相同的部门 ID 的对象之间的关系。
然而,我完全不知道如何回答这个问题。如果有人能指出我正确的方向,我将不胜感激。
将 Microsoft Visual Studio 2010 与 MS Entity Framework 4.0 结合使用
【问题讨论】:
标签: c# linq ienumerable