首页 新闻 搜索 专区 学院

求助 Linq select 动态

0
悬赏园豆:50 [已解决问题] 解决于 2014-04-30 17:30

var list = GetProductList().Select(a=>new{ a.productname,a.productcode,a.productprice} );

我想 对 new {}里面的列进行动态添加。有什么办法吗?

试过 GetProductList().Select("new{ a.productname,a.productcode,a.productprice}" );

但返回结果不是IQueryable<T>,做不了分页。

求一个好的解决办法 谢谢

stevenhzj的主页 stevenhzj | 初学一级 | 园豆:10
提问于:2013-10-09 09:47
< >
分享
最佳答案
0

给你介绍一个好东西.

 

http://www.cnblogs.com/humble/p/3329852.html 看看第三条使用方式

收获园豆:20
【秦时明月】 | 小虾三级 |园豆:835 | 2013-10-09 17:58
其他回答(3)
0

试试微软的示例代码:DynamicQueryable

收获园豆:10
Launcher | 园豆:45045 (高人七级) | 2013-10-09 09:50

现在就是用DynamicQueryable,但public static IQueryable Select 返回是匿名类型,重载不了 IPagedList

支持(0) 反对(0) stevenhzj | 园豆:10 (初学一级) | 2013-10-09 10:21

@stevenhzj: 试试这个:

 public static partial class DynamicQueryable
    {
        public static IQueryable<dynamic> Select<T>(this IQueryable<T> source, string selector, params object[] values)
        {
            return (IQueryable<dynamic>)Select((IQueryable)source, selector, values);
        }

}

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2013-10-09 10:41

@Launcher: 看起来好复杂的样子...

支持(0) 反对(0) 幻天芒 | 园豆:36662 (高人七级) | 2013-10-09 13:16
0

你好,楼主及各位:

建议你使用ExpandObject(默认微软从4.0自带的动态可以允许改变内部结构的类),先把匿名对象逐个赋值给动态创建的属性,然后额外增加属性即可。

Serviceboy | 园豆:211 (菜鸟二级) | 2013-10-09 10:38
0

你如果还想用你的分页泛型约束的话那你就从新定义一个你要返回数据的实体类在做数据返回不就OK了,这是最简单的方法

收获园豆:20
流年莫逝 | 园豆:247 (菜鸟二级) | 2013-10-23 14:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册