对于 WebAPI/MVC/Entity Framework,我完全是个菜鸟,因此按照本问题底部的教程创建了一个 ASP.NET WebAPI,该 API 链接到 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/.
正如斯蒂芬·穆克所说
return entities.ItemDetail.Where(e => e.DeptName == departmentName).ToList();
(从来没有完全弄清楚为什么人们把答案作为评论)
你的“单身”也可以写成:
yield return entities.ItemDetail.Where(e => e.ItemDetailID == id).FirstOrDefault();
将
Where
子句放入 FirstOrDefaul
t 是 FirstOrDefault
提供的功能,而 ToList
则没有。
myDbEntities 代表什么。