在 C# 中将匿名类型更改为对象列表
本文关键字:对象 列表 类型 | 更新日期: 2023-09-27 18:30:17
>我正在使用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();
尝试更改代码:
...
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();
...
你不能。
您不能将匿名对象随机转换为其他对象..所以即使这样也不起作用:
.ToList<TblSparePart>();
你能做的......实际上不返回匿名对象。 返回实际对象:
select new TblSparePart() {
PartName = s.SPartName,
PartCode = s.SPartCode
}
..等。