在Select LINQ语句上分配List属性
本文关键字:分配 List 属性 语句 Select LINQ | 更新日期: 2023-09-27 18:17:52
所以我想实现这样的东西:
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; }
}
您正在显式地创建列表并使用接受枚举的构造函数。这是不必要的,因为您已经在使用.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())
};