当涉及到WebAPI / MVC / Entity Framework时,我是一个完全菜鸟,因此,按照本问题底部的教程创建了一个ASP.NET WebAPI,该链接到SQL Server并显示来自称为表的数据ItemDetail。
我的ItemDetailController.cs显示如下:
public IEnumerable<ItemDetail> Get()
{
using (myDBEntities entities = new myDBEntities())
{
return entities.ItemDetail.ToList();
}
}
public IEnumerable<ItemDetail> Get(int id)
{
using (myDBEntities entities = new myDBEntities())
{
yield return entities.ItemDetail.FirstOrDefault(e => e.ItemDetailID == id);
}
}
当前做什么
Get()返回ItemDetail表中的所有结果。
Get(int id)从ItemDetail表返回单个结果,其中ID与参数匹配。
我想要做什么
我想要第三个Get()方法,该方法返回ItemDetail表中特定部门中的所有记录,例如
public IEnumerable<ItemDetail> Get(string departmentName)
{
using (myDBEntities entities = new myDBEntities())
{
return entities.ItemDetail.ToList(e => e.DeptName== departmentName);
}
}
但这会导致以下错误:
方法'ToList'的重载没有接受1个参数
非常感谢您的帮助
谢谢
已使用教程
https://www.c-sharpcorner.com/article/asp-net-web-api-and-sql-server/。
答案 0 :(得分:0)
如斯蒂芬·穆克(Stephen Muecke)
return entities.ItemDetail.Where(e => e.DeptName == departmentName).ToList();
(从来没有弄清楚为什么人们将答案作为评论)
您的“获得单身”也可以写成:
yield return entities.ItemDetail.Where(e => e.ItemDetailID == id).FirstOrDefault();
将Where
子句放入FirstOrDefaul
t是FirstOrDefault
提供的功能,而ToList
则没有。