实体框架核心获取多种类型的最新实体

时间:2019-02-20 14:19:51

标签: c# .net-core ef-core-2.2

我正在构建一个端点,以使用ef核心从我的数据库中获取最新对象。 我的代码是

private AppUser GetLatestUser()
{
  if (context.Roles.Any())
  {
    var max = context.Users.Max(x => x.UpdatedAt);
    return context.Users.Where(x => x.UpdatedAt == max).FirstOrDefault();
  }
  return null;
}
private AppRole GetLatestRole()
{
  if (context.Roles.Any())
  {
    var max = context.Roles.Max(x => x.UpdatedAt);
    return context.Roles.Where(x => x.UpdatedAt == max).FirstOrDefault();
  }
  return null;
}
.....

我想避免对我拥有的每个实体使用几乎相同的代码。想使用类型作为参数,但不知道如何执行此操作。

1 个答案:

答案 0 :(得分:2)

您应该尝试类似的操作

private T GetLatestEntry(T entity) where T : class
{
    return context.Set<T>().OrderByDescending(x => UpdatedAt).FirstOrDefault();
}