将实体框架链接到数据表行

时间:2017-02-05 05:18:28

标签: c# linq datatable

我正在尝试将查询转换为将在datagridview中显示的数据表,以便他们可以选择相应的行。

我收到此错误:

  

无法转换类型'<> f__AnonymousType1`5 [System.Int32,System.String,System.String,System.String,System.Int32]'键入' System.IConvertible' .Couldn&t;< {id_moNumber = 66856,moNumber1 = 81262,moOrder = 27208,moClient = Rawlings,moQty = 26}>在ID Num专栏中。预期类型是Int32。"}

我的代码如下:

foreach (var badMO in badMOs)
{
    var possibleFixes = dbReports.MoNumbers
                .Where(q => (!string.IsNullOrEmpty(badMO.moNumber) && 
                            (q.moNumber1 == badMO.moNumber || 
                             q.moOrder == badMO.moNumber)) || 
                            (!string.IsNullOrEmpty(badMO.moOrder) && 
                            (q.moOrder == badMO.moOrder || q.moNumber1 == badMO.moOrder)))
                .Select(s => new { s.id_moNumber, s.moNumber1, 
                                   s.moOrder, s.moClient, s.moQty })
                .ToList();

    foreach (var moFound in possibleFixes) 
    {
         dtFixes.Rows.Add(possibleFixes.ToArray()); 
    }

    curJob.Rows.Add(badMOs);
    MOFixForm fixForm = new MOFixForm(dtFixes, curJob);
    fixForm.ShowDialog();
}

我在foreach moFound in possibleFixes收到错误。

看着它我非常接近,但我不明白要转换查询的内容,以使其与IConvertible一起使用

1 个答案:

答案 0 :(得分:0)

更换此部件......

dtFixes.Rows.Add(possibleFixes.ToArray());

......这个......

dtFixes.Rows.Add(moFound);

您要为网格中的每一行添加整个列表,而不仅仅是当前项目。

同样适用于:

curJob.Rows.Add(badMOs);

应该是:

curJob.Rows.Add(badMO);