WebAPI Get() 方法返回匹配条件的所有记录列表

问题描述 投票:0回答:2

对于 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);
    }
}

目前做什么

  1. Get() 返回 ItemDetail 表中的所有结果。

  2. 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/.

sql-server asp.net-mvc entity-framework linq asp.net-web-api
2个回答
1
投票

正如斯蒂芬·穆克所说

return entities.ItemDetail.Where(e => e.DeptName == departmentName).ToList();

(从来没有完全弄清楚为什么人们把答案作为评论)

你的“单身”也可以写成:

yield return entities.ItemDetail.Where(e => e.ItemDetailID == id).FirstOrDefault();

Where
子句放入
FirstOrDefaul
t 是
FirstOrDefault
提供的功能,而
ToList
则没有。


0
投票

myDbEntities 代表什么。

© www.soinside.com 2019 - 2024. All rights reserved.