C# 在Select LINQ语句上分配列表属性
所以我想实现以下目标:C# 在Select LINQ语句上分配列表属性,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,所以我想实现以下目标: var query = from p in db.Project select new A { Project = p, Capacity = new List<Capacity>((from pp in db.ProjectActualCapacity
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())
};
您正在显式地创建一个列表,并使用接受枚举的构造函数。这是不必要的,因为您已经在使用定义该集合的
.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())
};
如何声明
Capacity
class?不能使用带有IEnumerable作为参数的列表构造函数。@AdrianoRepetti List(IEnumerable)是一个constructor@Adam我认为他的意思是,不能在Linq to实体中使用构造函数重载。
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())
};