0

我正在使用 Linq,并且有一个如下所示的函数来从数据库中获取数据,因为当我将这些数据拉入网格视图时,我不能 TblSpareParts 表的对象来编辑网格中的数据

private void LoadParts()
{
        RST_DBDataContext conn = new RST_DBDataContext();
        var AllParts = (from s in conn.TblSpareParts
                        join m in conn.TblBikeModels on s.ModelID equals m.ModelID
                        select new { s.SPartName, s.SPartCode, s.SPartLocation, s.SPartID, s.TblBikeModel.ModelName }).ToArray();
        SParts_grid.ItemsSource = AllParts;
}

我想要这样的功能,

private void LoadParts()
{
            RST_DBDataContext conn = new RST_DBDataContext();
            List<TblSparePart> AllParts = (from s in conn.TblSpareParts
                            join m in conn.TblBikeModels on s.ModelID equals m.ModelID
                            select new { s.SPartName, s.SPartCode, s.SPartLocation, s.SPartID, s.TblBikeModel.ModelName }).ToList();
            SParts_grid.ItemsSource = AllParts;
}

所以基本上我想把这部分var AllParts改成List<TblSparePart> AllParts.ToArray();.ToList();

4

2 回答 2

2

尝试更改您的代码:

...
select new { s.SPartName, s.SPartCode, s.SPartLocation, s.SPartID, s.TblBikeModel.ModelName }).ToList();
...

成为

...
select new TblSparePart { 
    // partName, partCode, etc are TblSparePart class property
    partName = s.SPartName, 
    partCode = s.SPartCode,
    ...
    ...
}).ToList();
...
于 2013-09-06T04:11:43.883 回答
0

你不能。

您不能将匿名对象随机转换为其他对象.. 所以即使这样也行不通:

.ToList<TblSparePart>();

你能做的..实际上不返回匿名对象..返回实际对象:

select new TblSparePart() {
    PartName = s.SPartName,
    PartCode = s.SPartCode
}

..ETC。

于 2013-09-06T04:12:53.903 回答