过滤.ToList()

时间:2018-09-26 07:26:08

标签: c# asp.net asp.net-mvc-5

我是ASP.NET MVC的新手。我有的: -具有一个表的数据库,该表在以下各列中包含生产数据: 机器名称,好零件,坏零件,日期。

基于ASP.NEt MVC5的MS教程,我已经构建了一个简单的应用程序来显示数据库中的数据。

我想要什么: 我想按machine_name过滤结果,因为DB中的记录太多,并且浏览器在呈现结果时挂起。

控制器看起来像这样:

public ActionResult Index()
        {
           return View(db.DATABASE.ToList());

        }

查看页面:

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.machine_name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.date)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.good_parts)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.bad_parts)
        </th>
    </tr>

@foreach (var item in Model)
{
    if (item.machine_name == "machine_1")
    {
      <tr>
        <td>
            @Html.DisplayFor(modelItem => item.machine_name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.data)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.good_parts)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.bad_parts)
        </td>
      </tr> 
     }
}

实现if语句后,view不从数据库返回任何记录。 预先非常感谢您抽出宝贵的时间向我解释基本知识。

Marcin。

2 个答案:

答案 0 :(得分:4)

就像

一样简单
db.DATABASE.Where(x => x.MachineName == "something").ToList()

db.DATABASE.Take(100).ToList()

Enumerable.Where Method

Queryable.Where Method

  

根据谓词过滤一系列值。

Enumerable.Take(IEnumerable, Int32) Method

QueryableExtensions.Take Method (IQueryable, Expression>)

  

从a的开头返回指定数量的连续元素   顺序

答案 1 :(得分:-2)

您可以尝试以下方法:

db.DATABASE.Where(item=>item.machine_name =="machine1").ToList();