/// <summary> /// 获取数据列表【此方法存在性能问题】 /// </summary> /// <param name="where"></param> /// <param name="top"></param> /// <param name="order"></param> /// <returns></returns> public IList<T> GetList(Expression<Func<T, bool>> expWhere, int top, Expression<Func<T, object>> order) { return _dbSet.Where(expWhere).Take(top).AsQueryable().OrderByDescending(order).ToList(); //.OrderByDescending(order).AsQueryable().Where(expWhere).Take(top).ToList(); }
public class Repository<T> where T : class { public readonly DBContext _context; public readonly DbSet<T> _dbSet; public Repository() { if (_context == null) { this._context = new DBContext(); } this._dbSet = this._context.Set<T>(); } }
/// <summary> /// 获取数据列表【此方法存在性能问题】 /// </summary> /// <param name="where"></param> /// <param name="top"></param> /// <param name="order"></param> /// <returns></returns> public IList<T> GetList(Expression<Func<T, bool>> expWhere, int top, Expression<Func<T, object>> order) { return _dbSet.Where(expWhere).Take(top).AsQueryable().OrderByDescending(order).ToList(); //.OrderByDescending(order).AsQueryable().Where(expWhere).Take(top).ToList(); }
private static Repository<NewInfo> ___Dal_NewInfo; /// <summary> /// NewInfo /// </summary> protected static Repository<NewInfo> __Dal_NewInfo { get { if (___Dal_NewInfo == null) { ___Dal_NewInfo = new Repository<NewInfo>(); } return ___Dal_NewInfo; } }
vModel.HotNews = __Dal_NewInfo.GetList(n => n.IsOK == 1 && (n.CateID == 16 || n.CateID == 17), 10, n => n.NewID);
linq to entity 排序的时候,OrderBY()接收 ExPression<Func<T,Object> exp>参数,但是我在调用的时候提交 int 数据他提示 LINQ to Entities 仅支持强制转换 Entity Data Model 基元类型 何解?
把你的代码贴出来看看
你好,代码已经提到问题补充了。麻烦请帮我看下。
另:怎么我收到2封提醒邮件说你的回复,怎么到这里又剩下一个回复了。。
@周煜皓:
ExPression<Func<T,Object> exp>参数 传的是???把参数也贴出来。光看方法,看不出来。
@百灵: 最后一段代码是所有的参数调用 ExPression<Func<T,Object> exp> 是下边红色部分。
vModel.HotNews = __Dal_NewInfo.GetList(n => n.IsOK == 1 && (n.CateID == 16 || n.CateID == 17), 10, n => n.NewID);
楼主问题解决勒么?
。。我也遇到这个问题。解决了么