2016-12-26 35 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() 
    } 
); 
相關問題