EF:Include路径表达式必须引用在类型上定义的导航属性

本文关键字:类型 定义 属性 导航 引用 Include 路径表达式 EF | 更新日期: 2023-09-27 18:01:03

var context = context.MyEntity
.include(e => e.something)
.Include(e => e.scoring
    .Select(sc=>sc.scoring_parameters
        //This is problem
        .Where(scp =>scp.scoring_id == sc.scoring_id)
        .Select(scp =>scp.cis_scoring_parameters.cis_scoring_parameters_tabs)))
.include(e => e.something_else)
.FirstOrDefault(e => e.id  == _id);

where子句给出错误"Include路径表达式必须引用在类型上定义的导航属性"。我看到过有此错误的帖子,但它们不适合此错误。我不知道如何以正确的方式编写lambda。有人能帮忙吗?

EF:Include路径表达式必须引用在类型上定义的导航属性

不能像这样过滤include中的数据。Include用于告诉EntityFramework要加载哪些数据。如果scoring_parameters.scoring_idscoring.scoring_id彼此相关,那么您可以尝试以下操作:

var context = context.MyEntity
    .include(e => e.something)
    .Include(e => e.scoring
        .Select(sc=>sc.scoring_parameters.Select(scp => scp.cis_scoring_parameters.cis_scoring_parameters_tabs)))
    .include(e => e.something_else)
    .FirstOrDefault(e => e.id  == _id);

我假设scp.cis_scoring_parameters.cis_scoring_parameters_tabs也是一个导航属性。