ASP.NET MVC Return table 中登录用户的最新条目

ASP.NET MVC Return the latest entry in table for the logged in user

我正在尝试在我的 HolidayRequestForm table 中获取已登录员工的最新记录。

但是根据 LINQ To Entities does not recognize the method Last. Really? 的建议,我想按降序排列,select 第一个。

我试过按降序添加,但出现错误 “错误 3 'System.Data.TypedTableBaseExtensions.OrderByDescending(System.Data.TypedTableBase, System.Func, System.Collections.Generic.IComparer)' 是一个 'method',在给定的上下文中无效

我放错地方了吗?

var SD = (from c in db.HolidayRequestForms.OrderByDescending
                        where (c.Employee.Email == name) && (c.Employee.EmployeeID == c.EmployeeID)
                        select c.StartDate);

        DateTime StartDate = SD.LastOrDefault();

我想 StartDateHolidayRequestForm table 中给出当前登录员工的最新结果

db.HolidayRequestForms.OrderByDescending

没有意义有两个原因。

  1. 这是一个方法,需要被调用(即后面有()
  2. 你需要告诉它要点什么 by

我建议将其作为替代品:

var SD = (from c in db.HolidayRequestForms where (c.Employee.Email == name) && (c.Employee.EmployeeID == c.EmployeeID)
                        select c.StartDate).OrderByDescending(z => z);

或:

var SD = db.HolidayRequestForms
    .Where(c => c.Employee.Email == name && c.Employee.EmployeeID == c.EmployeeID)
    .OrderByDescending(z => z.StartDate)
    .Select(y => y.StartDate);

您还需要使用 FirstOrDefault 而不是 LastOrDefault