LINQ to Entities 不支持 LINQ 表达式节点类型“Invoke”

本文介绍了一种针对LINQ表达式的优化方法,通过将Expression<Func<Order_info,bool>>类型的LINQ表达式编译为委托类型,再将其转换为IQueryable<Order_info>,从而避免了多次解析表达式树的问题。
 Expression<Func<Order_info, bool>> expre = expression;
            var q = db.order_info;
            IQueryable<Order_info> query = q;
            if (expre != null)
            {
                query = query.Where(expre);
                
            }

修改为:

1  Expression<Func<Order_info, bool>> expre = expression;
2             var q = db.order_info;
3             IQueryable<Order_info> query = q;
4             if (expre != null)
5             {
6                 //query = query.Where(expre);
7                 query = query.Where(expre.Compile()).AsQueryable();
8             }

 因为query.Where(expre)返回的是 IEnumerable<Order_info>类型的

转载于:https://www.cnblogs.com/robinblogs/p/3884951.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值