首页 > 解决方案 > 从实体框架中提取列表列表

问题描述

说,我定义了以下实体:

public class User : IdentityUser
{
    public virtual string Name { get; set; }
    public virtual string Surname { get; set; }

    public virtual List<Entry> Entries { get; set; }
}

public class Entry
{
    [Key]
    public virtual int Id { get; set; }

    public virtual string UserId { get; set; }
    public virtual User User { get; set; }

    public virtual long Timestamp { get; set; }
    public virtual string Comment { get; set; }
}

我想检索:

显然我可以自己转储用户和条目表并组织数据,但这将非常低效。有没有办法使用实体框架查询生成这样的结果?

标签: c#entity-framework

解决方案


不幸的是,您无法过滤Include表达式,因此您必须创建一个投影 - 如果没有那么多属性,它不会太乏味。

   var users = from user in context.Users
     select new User { 
        Name = user.Name,
        Surname = user.Surname,
        Entries = user.Entries.Where(u => u.Timestamp > X && u.Timestamp < Y).ToList()
     }

推荐阅读