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();
假设我有以下代码
List<Common.Models.Log> logs = new MyEntities().Logs
.OrderByDescending(o => o.Date)
.Take(50)
.ToList();
需要为
这样的调用方法创建 "Logs" 的部分 classList<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();