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())
   };