C# 列出最后5条记录

C# 列出最后5条记录,c#,asp.net-mvc,list,date,C#,Asp.net Mvc,List,Date,我正在尝试列出直到当前日期(最近的约会)的最后5条记录。这是我的控制器工作得很好,但我如何才能只筛选出5条记录以及日期在今天之前的记录 using (var db = new MaindbModelDataContext()) { var patient = db.Patients.FirstOrDefault(u => u.Email == (String)Session["UserEmail"]);

我正在尝试列出直到当前日期(最近的约会)的最后5条记录。这是我的控制器工作得很好,但我如何才能只筛选出5条记录以及日期在今天之前的记录

  using (var db = new MaindbModelDataContext())
            {
                var patient = db.Patients.FirstOrDefault(u => u.Email == (String)Session["UserEmail"]);
                var listrecent = from y in db.Appointments
                                 where y.PatientNo == patient.PatientNo
                                 select y;
                var TempRecent = new List<Models.AppModel>();
                foreach (var item in listrecent)
                {
                    var Temp = new Models.AppModel();
                    Temp.AppNo = item.AppNo;
                    Temp.PatientNo = (Int32)item.PatientNo;
                    Temp.Date = (DateTime)item.Date;
                    Temp.Status = item.Status;
                    Temp.Description = item.Description;
                    TempRecent.Add(Temp);

                }
                return View(TempRecent);
            }

        }
        else
        {
            return RedirectToAction("RegAndLogin", "User");
        }
    }

}
使用(var db=new MaindbModelDataContext())
{
var patient=db.Patients.FirstOrDefault(u=>u.Email==(String)会话[“UserEmail”]);
var listrecent=从y开始,单位为db.appoints
其中y.PatientNo==patient.PatientNo
选择y;
var TempRecent=新列表();
foreach(listrecent中的var项)
{
var Temp=new Models.AppModel();
Temp.AppNo=item.AppNo;
Temp.PatientNo=(Int32)item.PatientNo;
临时日期=(日期时间)item.Date;
温度状态=物料状态;
温度说明=项目说明;
TempRecent.Add(Temp);
}
返回视图(最新);
}
}
其他的
{
返回重定向到操作(“RegAndLogin”、“用户”);
}
}
}
这是我的观点

@model IEnumerable<DentAppSys.Models.AppModel>
@using System.Web.Helpers
 <section class="Patient-Dashboard">

        <div id="dashboard_left">
            <h1> Recent Appointments</h1>
   @{
    var Mygrid = new WebGrid(Model, selectionFieldName: "SelectedRow");
}

@Mygrid.GetHtml(
    displayHeader: true,
    alternatingRowStyle: "alt",
    selectedRowStyle: "select",
    mode: WebGridPagerModes.All,

columns: Mygrid.Columns
(

    Mygrid.Column("Appointment No", "Appointment No",format: @<text>@item.AppNo</text>),
    Mygrid.Column("Patient No", "Patient No", format: @<text>@item.PatientNo</text>) ,
    Mygrid.Column("Description", "Description", format: @<text>@item.Description</text>),
    Mygrid.Column("Date", "Date", format: @<text>@item.Date.ToString("MM/dd/yyyy")</text>),
    Mygrid.Column("Status", "Status", format: @<text>@item.Status</text>)

))
</div>

<div id="dashboard_right">
<br/>
<h1>Incoming Appointments</h1>
</div>
</section>
@model IEnumerable
@使用System.Web.Helpers
最近的任命
@{
var Mygrid=新的WebGrid(模型,selectionFieldName:“SelectedRow”);
}
@Mygrid.GetHtml(
displayHeader:true,
alternatingRowStyle:“alt”,
selectedRowStyle:“选择”,
模式:WebGridPagerModes.All,
列:Mygrid.columns
(
Mygrid.Column(“约会编号”,“约会编号”,格式:@@item.AppNo),
Mygrid.列(“患者编号”、“患者编号”,格式:@@item.PatientNo),
Mygrid.Column(“说明”、“说明”,格式:@@item.Description),
Mygrid.Column(“日期”,“日期”,格式:@@item.Date.ToString(“MM/dd/yyyy”),
Mygrid.Column(“状态”、“状态”,格式:@@item.Status)
))

即将到来的约会
我相信在您的linq声明中这样的内容应该是有效的:

var listrecent = (from y in db.Appointments
                 where y.PatientNo == patient.PatientNo
                 where y.Date < DateTime.Today
                 orderby y.Date descending
                 select y).Take(5);
var listrecent=(从数据库中的y开始)
其中y.PatientNo==patient.PatientNo
其中y.Date
也许你可以用你正在使用的框架来标记这个问题?这样,更有可能有人能正确回答问题。谢谢,我会使用它。我还有另一个问题要列出。最近的约会(日期在今天之前)和即将到来的约会(日期在今天之后)。我应该使用哪个过滤器?你可以使用非常类似的逻辑,可能会删除“降序”和“接受”,然后修改“where”语句。