2016-08-05 96 views
0
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); 

的其中clausule给出误差限定的导航属性“包含路径表达式必须引用的类型所定义的导航属性”。我看过有这个错误的帖子,但他们不适合这个。我不知道如何以适当的方式写我的lambda。有人可以帮忙吗?EF:包含路径表达式必须引用的类型

+0

如果'scoring_id'是从'scoring_parameter'到'scoring'的FK,并且您正确配置了映射,那么where子句是多余的。只要尝试一下,不要在哪里。 –

回答

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也是一个导航属性。

相关问题