MVC - 如何在控制器中检索多个记录

时间:2015-02-02 17:15:47

标签: sql-server asp.net-mvc

我有以下行动:

public ActionResult Details(string id)
{
    MyRecordContext rc = new MyRecordContext(); 
    MyRecord r = rc.MyRecords.Single(x => x.RecordID == _id);

    return View(r);
 }

但事实证明,有多个具有相同id的记录(表的主键是复合键)。所以我需要检索MyRecord类型的List,所以我将代码更改为:

public ActionResult Details(string id)
{
    MyRecordContext rc = new MyRecordContext(); 
    List<MyRecord> rl = rc.MyRecords.Any(x => x.RecordID == id);

    return View(rl);
 }

但由于方法Any返回bool,因此上述内容显然不正确。有人可以帮我纠正我的代码吗?

2 个答案:

答案 0 :(得分:3)

public ActionResult Details(String id)
{
    MyRecordContext rc = new MyRecordContext();
    List<MyRecord> rl = rc.MyRecords.Where(x => x.RecordID == id).ToList();

    return View(rl);
}

这将返回与RecordID == id的所有匹配,然后将此列表传递给您的视图。只需确保您同时更新Details视图即可接受List<MyRecord>而不是MyRecord(现在您正在传递集合)。

答案 1 :(得分:1)

在Linq中,Any只返回一个true / false,任何值都匹配。您正在寻找一个简单的Where

List<MyRecord> rl = rc.MyRecords.Where(x => x.RecordID == id);