2016-12-26 82 views
1

我有一个基类:如何在Entity Framework中分别为每个人分组数据?

public class Base 
{ 
    public string Name {get;set;} 
    public DateTime StartDate {get;set;} 
    public DateTime EndDate {get;set;} 
} 

,并获得当前列表的数据:

  • 名称:PERSON1,起始日期:27/12/2016,结束日期:28/12/2016
  • 名称:Person2,StartDate:21/12/2016,结束日期:22/12/2016
  • 名称:PERSON2,起始日期:17/12/2016,结束日期:20/12/2016
  • 名称:PERSON1,起始日期: 21/11/2017,结束日期:22/11/2017

所以我把它分成两类:

public class Person 
{ 
    public string Name {get;set;} 
    public List<PersonDates> Dates {get;set} 
} 

public class PersonDates 
{ 
    public DateTime StartDate {get;set;} 
    public DateTime EndDate {get;set;} 
} 

我的问题是我想每个人都有日期列表。

我该如何使用Entity Framework lambda表达式来做到这一点,有什么建议?

回答

2

从数据库中分离出所有Base对象,将它们分开分组。

bases 
.GroupBy(x=>x.Name) 
.Select(x=> 
    new Person 
    { 
     Name =x.Key, 
     PersonDates = x.Select(
       y=>new PersonDates{ 
       StartDate=y.StartDate, 
       EndDate =y.EndDate}) 
      .ToList() 
    } 
); 
相关问题