所以我希望实现类似的目标:
var query = from p in db.Project
select new A
{
Project = p,
Capacity = new List<Capacity>((from pp in db.ProjectActualCapacity
where pp.ProjectID == p.ID
select new Capacity
{
Actual = pp.Hours,
Date = pp.Date,
ProjectID = pp.ProjectID
}
).ToList())
};
但是,当查询转换为列表时。它抛出以下错误
LINQ to Entities中仅支持无参数构造函数和初始值设定项。
有解决方法吗?
感谢
//更新
public class Capacity
{
public DateTime Date { get; set; }
public decimal? Actual { get; set; }
public decimal? Projected { get; set; }
public int ProjectID { get; set; }
public decimal Rate { get; set; }
}
答案 0 :(得分:1)
您正在显式创建列表并使用接受可枚举的构造函数。这不是必需的,因为您已经在使用.ToList()
来定义该集合。
此外,您的Capacity类需要一个无参数构造函数。
所以我认为它会像这样工作。
var query = from p in db.Project
select new A {
Project = p,
Capacity = (from pp in db.ProjectActualCapacity
where pp.ProjectID == p.ID
select new Capacity {
Actual = pp.Hours,
Date = pp.Date,
ProjectID = pp.ProjectID
}
).ToList())
};