Linq 动态查询返回类型

雪狼online 2013-04-05 07:48:03
当我们动态使用Linq查询的时候,例如
实体Entity中如果有2个字段Name,string类型。Age 是Int类型

现在我要生成linq语句

Entity.Select(p=>p.Name)返回的是string类型的集合

Entity.Select(p=>p.Age)返回的是int类型的集合,如何也返回是string类型的集合呢?

因为我想使用动态linq拼接p=>这个语句。

var pe = Expression.Parameter(typeof(T), "p");
var property = Expression.Property(pe, fieldName);
exps = Expression.Lambda<Func<Entity, 类型?>>(property, pe);
return exps;
类型无法转换?
有什么办法解决呢?
动态linq不是很熟练,请高手赐教。谢谢!

...全文
4972 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnForGrass 2013-04-07
  • 打赏
  • 举报
回复
引用 3 楼 q107770540 的回复:
Entity.Select(p=>p.Age.ToString()); 这种写法在LINQ2SQL里是可以的,不过在LINQ2EF里是不支持的 Entity.Select(p=>Convert.ToString(p.Age)); 在二者下都是支持的,操蛋的MS
Entity.Select(p=>Convert.ToString(p.Age)); 感觉重复的方法,
gxingmin 2013-04-07
  • 打赏
  • 举报
回复
哦哦哦,原来如此,学习了
q107770540 2013-04-07
  • 打赏
  • 举报
回复
Entity.Select(p=>p.Age.ToString()); 这种写法在LINQ2SQL里是可以的,不过在LINQ2EF里是不支持的 Entity.Select(p=>Convert.ToString(p.Age)); 在二者下都是支持的,操蛋的MS
gxingmin 2013-04-07
  • 打赏
  • 举报
回复
Entity.Select(p=>p.Age.ToString()); //这样就返回string类型了
q107770540 2013-04-07
  • 打赏
  • 举报
回复
引用 楼主 SnowyWolfOnline 的回复:
Entity.Select(p=>p.Name)返回的是string类型的集合 当 Entity.Select(p=>p.Age)返回的是int类型的集合,如何也返回是string类型的集合呢?
在Lamda表达式中,只要作个类型转换就可以了: string[] result= Entity.Select(p=>Convert.ToString(p.Age)); 你可以将这个思路应用到表达式树中去

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧