各位大牛,小弟今天写程序的时候使用lambda写一个小功能的时候出现如下问题:
代码如下:
求高手解答!小弟在这谢过了!
就是想获取数据库里的订单信息 绑定到数据源 然后通过datagridview显示数据
完整的sql代码如下:
select PayTime, Amount, PayType, InvoiceNo, BuyerName, InvoiceDate,TaxAmount, TotalAmount from orderinfo
where OrderStatus=3 order by InvoiceDate desc
你的orderinfoAll是一个匿名类,而匿名类是无法强制转换为实体类的,这是语法规则上不允许这样做的。你要的结果不过就是能够将查到的数据绑定到页面,其实可以建一个模型类,这个类就可以有你select(0=>new{})里面的字段。
比如模型类是orderModel
这样写:
orderinfo.IQuery.where().select(o=>new orderModel{
})
返回的类型不能转化为(List<OrderInfo>)
用()强转不行,
笨方法是一个一个添加到这个List集合里,其他的我也不知道,号线故能toarray,toarray是反过来
好的 谢谢 我试试一个一个添加的看看
@无敌小土豆呀: 奥,看楼下,tolist就行了
报错不已经说的很清楚了么?不能将匿名类型转换成你期望的类型。你最后orderinfoAll.ToList().ConvertAll一下
a按照你说的试了一下还是有问题呢
@无敌小土豆呀: ConvertAll要带委托进去啊。。。。
你要么Select方法就不要用匿名对象,直接new你需要返回的对象,在Select的委托方法中给你需要的对象赋值。
3L说的对。并且不要强转要。tolist()