我想填充一个列表框,所以我必须定义一个ListBoxItem数组。 数据存储在数据库中。
这是我原来的方法:
public IEnumerable<String> GiveStudentsNormalAsString(int lesson, int class)
{
Lesson l = giveLesson(lesson);
Class c = GiveClass(l, class);
return (from s in c.Students
orderby s.Name, s.FirstName
select s.Name);
}
所以“班级”包含学生名单(导航财产)。 我想要做的不是返回一个IEnumerable的字符串,而是一个IEnumerable的SelectListItems。
我已经开始了:
public IEnumerable<SelectListItem> GiveStudentsNormalAsString(int lesson, int class)
{
Lesson l = giveLesson(lesson);
Class c = GiveClass(l, class);
return .Select(student => new SelectListItem
{
Text = ...
Value = ...
};
}
但是我需要写什么作为文本和价值?例如,我希望学生编号作为值,我该怎么做?
这是我的edmx: EDMX 1
答案 0 :(得分:0)
在构建student
:
SelectListItem
变量
public IEnumerable<SelectListItem> GiveStudentsNormalAsString(int lesson, int class)
{
Lesson l = giveLesson(lesson);
Class c = GiveClass(l, class);
return c.Students.Select(student => new SelectListItem
{
Text = student.Name,
Value = student.Number.ToString()
});
}
当然,如果您愿意,也可以使用LINQ语法编写:
public IEnumerable<SelectListItem> GiveStudentsNormalAsString(int lesson, int class)
{
Lesson l = giveLesson(lesson);
Class c = GiveClass(l, class);
return (from student in c.Students
select new SelectListItem
{
Text = student.Name,
Value = student.Number.ToString()
});
}