Метод расширения Entity Framework (частичный класс)

Предположим, у меня есть следующий код

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

при необходимости создать частичный класс "Журналы" для вызова метода, как

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>();
        }
    }
}

Проблема в том, что я не вижу TakeFirst50OrderDateDesc после новых MyEntities(). Журналы. Возможно ли я неправильно определить конструктор частичного класса? Как я могу это решить? Спасибо

1 ответ

Попробуйте использовать метод расширения, например:

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

}

Вы можете получить к нему доступ именно так, как вы ожидаете:

var logs = context.Logs.TakeFirst50OrderDateDesc().ToList();
Другие вопросы по тегам