首页 新闻 搜索 专区 学院

使用lambda表达式查询时出现以下错误

0
悬赏园豆:5 [已解决问题] 解决于 2017-09-01 09:23

各位大牛,小弟今天写程序的时候使用lambda写一个小功能的时候出现如下问题:

 

代码如下:

求高手解答!小弟在这谢过了!

问题补充:

就是想获取数据库里的订单信息 绑定到数据源 然后通过datagridview显示数据

完整的sql代码如下:

select PayTime, Amount, PayType, InvoiceNo, BuyerName, InvoiceDate,TaxAmount, TotalAmount from orderinfo
where OrderStatus=3 order by InvoiceDate desc

无敌土豆的主页 无敌土豆 | 初学一级 | 园豆:159
提问于:2017-08-31 17:39
< >
分享
最佳答案
1

你的orderinfoAll是一个匿名类,而匿名类是无法强制转换为实体类的,这是语法规则上不允许这样做的。你要的结果不过就是能够将查到的数据绑定到页面,其实可以建一个模型类,这个类就可以有你select(0=>new{})里面的字段。

比如模型类是orderModel

这样写:

orderinfo.IQuery.where().select(o=>new orderModel{

 

})

收获园豆:5
龙行天涯 | 小虾三级 |园豆:1821 | 2017-08-31 18:50
其他回答(3)
0

返回的类型不能转化为(List<OrderInfo>)

用()强转不行,

笨方法是一个一个添加到这个List集合里,其他的我也不知道,号线故能toarray,toarray是反过来

猝不及防 | 园豆:2038 (老鸟四级) | 2017-08-31 17:45

好的 谢谢  我试试一个一个添加的看看

支持(0) 反对(0) 无敌土豆 | 园豆:159 (初学一级) | 2017-08-31 17:47

@无敌小土豆呀: 奥,看楼下,tolist就行了

支持(0) 反对(0) 猝不及防 | 园豆:2038 (老鸟四级) | 2017-08-31 17:50
0

报错不已经说的很清楚了么?不能将匿名类型转换成你期望的类型。你最后orderinfoAll.ToList().ConvertAll一下

Daniel Cai | 园豆:10374 (专家六级) | 2017-08-31 17:47

a按照你说的试了一下还是有问题呢

支持(0) 反对(0) 无敌土豆 | 园豆:159 (初学一级) | 2017-08-31 17:52

@无敌小土豆呀: ConvertAll要带委托进去啊。。。。

你要么Select方法就不要用匿名对象,直接new你需要返回的对象,在Select的委托方法中给你需要的对象赋值。

支持(0) 反对(0) Daniel Cai | 园豆:10374 (专家六级) | 2017-08-31 18:21
0

3L说的对。并且不要强转要。tolist()

吴瑞祥 | 园豆:28820 (高人七级) | 2017-08-31 19:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册