EF Core LINQ 从包含的实体中排除列

EF Core LINQ exclude column from included entity

我正在使用 ASP.Net Core 2.0 和 Entity Framework,我正在尝试 return 一个包含 Employment 实体及其 EmploymentDocument 实体集合的页面模型.对于后者,我不想加载数据 (byte[]) 列,但我确实想要所有其他列,最重要的是 FileName.

我加载所有内容(包括数据列)的 linq 查询是:

var employment = await _context.Employment
    .Include(e => e.EmploymentDocuments) // will load all associated document data
    .SingleOrDefaultAsync(m => m.EmploymentID == id);

此处的目的是能够在页面上显示所有文档名称的列表以及随后可用于下载所选文件的数据的链接。

Select 你需要的所有数据都需要手动存储在一些 Dto 对象中:

var employment = await _context.Employment
    .Where(m => m.EmploymentID == id)
    .Select(e => new EmploymentDto
    { 
        ID = e.EmploymentID,
        Docs = e.EmploymentDocuments.Select(o => o.FileName)
    })
    .SingleOrDefaultAsync();