Linq 动态查询返回类型
当我们动态使用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不是很熟练,请高手赐教。谢谢!
linq lamda --------------------编程问答--------------------
在Lamda表达式中,只要作个类型转换就可以了:
string[] result= Entity.Select(p=>Convert.ToString(p.Age));
你可以将这个思路应用到表达式树中去 --------------------编程问答-------------------- Entity.Select(p=>p.Age.ToString()); //这样就返回string类型了 --------------------编程问答-------------------- Entity.Select(p=>p.Age.ToString());
这种写法在LINQ2SQL里是可以的,不过在LINQ2EF里是不支持的
Entity.Select(p=>Convert.ToString(p.Age));
在二者下都是支持的,操蛋的MS --------------------编程问答-------------------- 哦哦哦,原来如此,学习了 --------------------编程问答--------------------
Entity.Select(p=>Convert.ToString(p.Age));
感觉重复的方法,
补充:.NET技术 , LINQ