我的方法是用他的名字从数据库中返回一名学生, 如果我有很多同名的学生,我想修改我的方法以返回学生列表,我该怎么办,谢谢
// GET: api/Students/name
[ResponseType(typeof(Student))]
public IHttpActionResult GetStudentByName(string Name)
{
Student student = db.Students.FirstOrDefault(t => t.Name == Name);
if (student == null)
{
return NotFound();
}
return Ok(student);
}
答案 0 :(得分:3)
供参考
Enumerable.Where Method (IEnumerable, Func)
根据谓词过滤一系列值。
Enumerable.FirstOrDefault Method
返回序列的第一个元素,如果不是,则返回默认值 找到了元素。
另请注意,您需要将ResponseType
更改为List<Student>
示例强>
[ResponseType(typeof(List<Student>))]
public IHttpActionResult GetStudentByName(string Name)
{
var students = db.Students.Where(t => t.Name == Name).ToList();
if (!students.any())
{
return NotFound();
}
return Ok(students);
}
答案 1 :(得分:2)
List<Student> student = db.Students.Where(t => t.Name == Name).ToList()
答案 2 :(得分:-1)
[ResponseType(typeof(IEnumerable<Student>))]
public IHttpActionResult GetStudentsByName(string Name)
{
var students = db.Students.Where(t => t.Name == Name).ToList();
return students.Count == 0 ? NotFound() : Ok(students);
}