实体框架扩展方法(分部类)

本文关键字:框架 扩展 方法 实体 | 更新日期: 2023-09-27 18:01:12

假设我有以下代码

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

需要为类似的调用方法创建一个"Logs"的部分类

List<Common.Models.Log> logs = new MyEntities().Logs.TakeFirst50OrderDateDesc();

我正在尝试创建用于从MyEntities((调用方法的分部类。记录

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

问题是,在新的MyEntities((之后,我看不到TakeFirst50OrderDateDesc。日志。定义分部类的构造函数可能是错误的吗?我该怎么解决?感谢

实体框架扩展方法(分部类)

尝试使用扩展方法,如:

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

然后,您可以完全按照预期访问它:

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