ASP.NET MVC返回表中已登录用户的最新条目

时间:2019-01-27 00:47:05

标签: c# entity-framework linq-to-entities

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

不过,根据LINQ To Entities does not recognize the method Last. Really?的建议,我想按降序排列并选择第一个。

我尝试按orderbydescending添加,但是出现错误 “错误3'System.Data.TypedTableBaseExtensions.OrderByDescending(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer)'是'方法',在给定的上下文中无效

我把它放在错误的地方了吗?

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表中给出当前已登录员工的最新结果

1 个答案:

答案 0 :(得分:3)

db.HolidayRequestForms.OrderByDescending

由于两个原因没有意义。

  1. 这是一种需要调用的方法(即,后面有()
  2. 您需要告诉它订购什么方式

我建议将其替换为

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