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

时间:2016-08-05 10:45:29

标签: c# .net entity-framework

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 clausule给出错误“Include路径表达式必须引用在类型上定义的导航属性”。我看过有这个错误的帖子,但它们不适合这个。我不知道怎么用正确的方式写我的lambda。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您无法像这样过滤包含数据。 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也是导航属性。