使用Lambda表达式在实体框架中提前加载2个级别

时间:2018-09-26 11:33:13

标签: entity-framework entity-framework-core

我正在使用MS实体框架核心,正在尝试进行急切的加载查询。为此,我有以下方法:

public FieldSet GetFieldSetById(int id)
{
    return _context.FieldSet.Include("FieldSetFields.Field").SingleOrDefault(fs => fs.FieldSetId == id);
}

此代码可以正常工作,但是我想知道如何使用lambda语法(System.Func)实现它。

到目前为止,我也可以使用它,但是其中不包含“字段”。

return _context.FieldSet.Include(e => e.FieldSetFields).SingleOrDefault(fs => fs.FieldSetId == id);

FieldSetFields是一个列表,然后我无法调用.Field。我该如何实现?

1 个答案:

答案 0 :(得分:1)

使用ThenInclude

return _context.FieldSet
    .Include(e => e.FieldSetFields)
        .ThenInclude(fsf => fsf.Field)
    .SingleOrDefault(fs => fs.FieldSetId == id);