如何在Entity Framework中分别为每个人分组数据?

时间:2016-12-26 13:26:45

标签: c# entity-framework

我有一个基类:

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

并获取当前列表数据:

  • 名称:Person1, StartDate :2016年12月27日, EndDate :2016年12月28日
  • 名称:Person2, StartDate :2016年12月21日, EndDate :22/12/2016
  • 名称:Person2, StartDate :2016年12月17日, EndDate :2016年12月20日
  • 名称:Person1, StartDate :21/11/2017, EndDate :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表达式,任何建议?

1 个答案:

答案 0 :(得分: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()
    }
);