我正在使用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();
答案 0 :(得分: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();
...
答案 1 :(得分:0)
你不能。
您无法将匿名对象随机转换为其他内容..所以即使这样也行不通:
.ToList<TblSparePart>();
你能做什么..实际上并不是返回匿名对象..返回实际对象:
select new TblSparePart() {
PartName = s.SPartName,
PartCode = s.SPartCode
}
...等。