Entity Framework扩展方法(部分class)

Entity Framework extension method (partial class)

假设我有以下代码

List<Common.Models.Log> logs = new MyEntities().Logs
            .OrderByDescending(o => o.Date)
            .Take(50)
            .ToList();

需要为

这样的调用方法创建 "Logs" 的部分 class
List<Common.Models.Log> logs = new MyEntities().Logs.TakeFirst50OrderDateDesc();

我正在尝试创建部分 class 以从 MyEntities().Logs

调用方法
namespace Common.DataLayers
{
    public partial class Log : DbSet<Log>
    {
        public List<Log> TakeFirst50OrderDateDesc()
        {
            //blablabla
            return new List<Log>();
        }
    }
}

问题是我在 new MyEntities().Logs 之后看不到 TakeFirst50OrderDateDesc。定义部分 class 的构造函数可能是错误的吗?我该如何解决?谢谢

尝试使用如下扩展方法:

public static IQueryable<Log> TakeFirst50OrderDateDesc(this IQueryable<Log> top50)
{
    return top50.OrderByDescending(o => o.Date)
    .Take(50);

}

然后您就可以按照您的期望访问它:

var logs = context.Logs.TakeFirst50OrderDateDesc().ToList();