DataGridView不能被LINQ to SQL对象填充
本文关键字:SQL 对象 填充 to LINQ 不能 DataGridView | 更新日期: 2023-09-27 18:16:28
我试图使用下面的代码在我的WinForms
应用程序(dgvOrderSizes
)上填充DataGridView
。如代码中所述,如果我将cod
分配给我的DataGridView
,它会填充得很好,但是当我尝试将orderDetails
分配给它时,它不会填充。我试着调试代码,发现DataSource
属性被正确分配,所以我想知道为什么网格没有被填充?(没有异常)
protected void ShowOrderDetails(int orderNo)
{
this.dgvOrderSizes.DataSource = null;
var cod = from orderDetail in db.OrderDetails
where orderDetail.OrderNo == orderNo
select orderDetail;
//this.dgvOrderSizes.DataSource = cod; //works until here
var orderDetails = from pOrder in cod.AsEnumerable()
select new { pOrder.Plies, pOrder.Composition, pOrder.Size, pOrder.UnitName, pOrder.Quantity, pOrder.Rate, pOrder.ProductionUnitName, pOrder.DeliveryUnitName };
this.dgvOrderSizes.DataSource = orderDetails; //doesn't work
}
DataGridView使用了相当多的api,包括IListSource, IList, ITypedList, IBindingList, IBindingListView,以及大部分的componentmodel(包括所有的描述符),还有更多。如果你说它与"cod"一起工作,那么可能LINQ-to-SQL至少提供了这些api中的一个,而LINQ-to-Objects没有(这很好;
只要调用ToList()就可以了:
blah.DataSource = orderDetails.ToList();