2016-12-26 13 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のラムダ式で提案できますか?

答えて

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() 
    } 
); 
関連する問題