我正在尝试的是以下内容:
public class AHME
{
public string elementName { get; set; }
public long? elementID { get; set; }
public AHME[] children { get; set; }
public static AHME[] GetAHME()
{
var listS = new List<AHME>();
using (var db = new DBEntities())
{
AHME sList = db.Stnd.Select(s => new AHME
{
elementID = s.ID,
elementName = s.Name,
}).ToList();
listS.Add(sList);
var listT = new List<AHME>();
using (var db = new DBEntities())
{
AHME tList = db.Tr.Join(db.Us, t => t.ID, u => u.ID, (t, u) => new AHME
{
elementID = t.ID,
elementName = u.FirstNames + " " + u.LastName,
children=listS.ToArray(),
});
listT.Add(tList).ToList();
}
return listT.ToArray();
}
}
}
但我收到的错误如下:
无法将类型“
System.Collections.Generic.List<LSB.HM.AHME>
”隐式转换为“LSB.HM.AHME
”无法将类型“
System.Linq.IQueryable<LSB.HM.AHME>
”隐式转换为“LSB.HM.AHME
”。存在显式转换(您是否错过了演员?)
此外,对于“AHME sList
”如果我可以使用类似var sList
的var类型,
然后它的投掷错误:
<LSB.HM.AHME>.Add
有一些无效的争论
答案 0 :(得分:5)
您正尝试将List<AHME>
对象分配给AHME
变量。试试这样:
var sList = db.Stnd.Select(s => new AHME
{
elementID = s.ID,
elementName = s.Name,
}).ToList();
Join
行相同。
答案 1 :(得分:4)
问题在于:
AHME sList = db.Stnd.Select(s => new AHME
{
elementID = s.ID,
elementName = s.Name,
}).ToList();
您无法将IList<T>
投射到T
。
最简单的解决方案是使用var
var sList = db.Stnd.Select(s => new AHME
{
elementID = s.ID,
elementName = s.Name,
}).ToList();
答案 2 :(得分:0)
感谢所有人和Writwick。
我使用foreach循环遍历var sList并在ListS中的sList中添加项目,从概念上讲我认为它应该是这样的,因为sList包含对象列表并且需要逐个添加列表。